okuurt
@okuurt (徹 小山)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

(初学者)Laravel ログインフォーム表示(トップページ)

解決したいこと

Route [user.login] not defined.を解決したい。

ログインファームを作成しています。
ルーティング→コントローラー→ビューの設定をして、
docker-compose up -dをして、localhost8000で立ち上げられません。

発生している問題・エラー

Symfony\Component\Routing\Exception\RouteNotFoundException
Route [user.login] not defined. (View: /var/www/html/my-laravel-app/resources/views/user/signin.blade.php)

該当するソースコード

my-laravel-app/routes/web.php

Route::get('/', 'UserController@signin')->name('user.signin');
my-laravel-app/app/Http/Controllers/UserController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * ログインフォーム表示アクション
     */
    public function signin()
    {
        return view('user.signin');
    }
}



my-laravel-app/resources/views/user/signin.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
 <div class="row justify-content-center">
   <div class="col-md-8">
     <div class="card">
       <div class="card-header">{{ __('ログイン') }}</div>
       <div class="card-body">
         @if (count($errors) > 0)
         <div class="errors">
           <ul>
             @foreach ($errors->all() as $error)
               <li>{{$error}}</li>
             @endforeach
           </ul>
         </div>
         @endif
         <form action="{{route('user.login')}}" method="POST">
           @csrf
           <div class="form-group">
             <label for="email">E-Mail</label>
             <input type="text" id="email" name="email" value="{{old('email')}}" class="form-control">
           </div>
           <div class="form-group">
             <label for="password">Password</label>
             <input type="password" id="password" name="password" value="{{old('password')}}" class="form-control">
           </div>
           <button type="submit" class="btn btn-primary">ログイン</button>
         </form>
       </div>
     </div>
   </div>
 </div>
</div>
@endsection

自分で試したこと

初学者です。実践をしながら学んでいます。
ルーティング→コントローラー→ビューの設定を見直しました。
正しくファイルが、正しいディレクトリーの傘下になっているか確認

my-laravel-app/resources/viewsにlayoutsとuserを作成して、layoutsには、app.blade.php、userには、signin.blade.phpというファイルを作成しました。

0

1Answer

resources/views/user/signin.blade.php の <form action="{{route('user.login')}}" method="POST"> のアクションを {{ route('user.signin') }}にすれば直ると思います。

エラーに resources/views/user/signin.blade.php でuser.login のルートが存在しないとエラーが出ているのでよく読みましょう

1Like

Comments

  1. @okuurt

    Questioner

    ありがとうございました。 user.loginを作りたかったにも関わらず、user.signinとして誤って作っていました。ありがとうございました。

Your answer might help someone💌