Как решить эту ошибку входа в Laravel

Я создал форму входа в систему под названием UserLogin.blade.php. И я создал контроллер под названием UserLoginControl.php и модель под названием login.php. Теперь я хочу войти в мою систему, используя имя пользователя и пароль, которые находятся в базе данных. Но после ввода имени пользователя и пароля и нажатия кнопки «Вход», это показывает мне эту ошибку –

(1/1) ОшибкаException

Неопределенный индекс: пароль

Но я объявил имя пользователя и пароль в файле UserLoginController.php.

Как я могу это исправить ??

Вот UserLogin.blade.php (Просмотр файла).

<!DOCTYPE html> <html> <head> </head> <body"> <form method="post" action="{{ route('UserLogin') }}"> {{ csrf_field() }} Username : <input type="text" name="username"> <br><br> Password : <br><input type="password" name="password" class="text"> <br><br> <input type="submit" name="login" value="Login"> <br> <small><a href="{{ route('first') }}">Return Home</a></small> </form> </center> </body> </html> 

Вот файл UserLoginController.php (файл контроллера).

 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\login; use Illuminate\Support\Facades\Auth; class UserLoginController extends Controller { public function index() { return view('UserLogin'); } public function login(Request $request) { $this->validate($request, [ 'username' => 'required', 'password' => 'required' ]); if (Auth::attempt(['username' => $request['username'], 'pw' => $request['password']])) { return redirect('RegView'); } return redirect('UserLogin'); } } 

Вот файл login.php (файл модели).

 <?php namespace App; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Database\Eloquent\Model; class login extends Model implements Authenticatable { use \Illuminate\Auth\Authenticatable; } 

И я написал это в файле Auth.php

 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], 'users' => [ 'driver' => 'eloquent', 'model' => App\login::class, ], 

Вот Маршруты, которые я создал.

 Route::any('/UserLogin', 'UserLoginController@index')->name('UserLogin'); Route::post('/UserLogin','UserLoginController@login'); 

Вот моя таблица логинов.

введите описание изображения здесь

сначала проверьте, имеет ли ваш login модели login поля в схеме логина входа после этого:

 if (Auth::attempt(['username' => $request->get('username'), 'pw' => $request->get('password')])) { return redirect('RegView'); } 

чтобы:

 if (Auth::attempt(['username' => $request->get('username'), 'password' => $request->get('password')])) { return redirect('RegView'); } 

также перейдите в свое приложение / Http / Auth / LoginController.php и добавьте следующее:

  /** * Get the login username to be used by the controller. * * @return string */ public function username() { return 'username'; } 

и, наконец, измените это:

 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], 'users' => [ 'driver' => 'eloquent', 'model' => App\login::class, ], 

к этому :

 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\login::class, ], 

проверьте, есть ли какие-либо ошибки, если обновление страницы:

 @if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif 

если вы действительно хотите использовать pw вместо password посмотрите на этот ответ: https://stackoverflow.com/a/39382427/4369087

Вы должны получить доступ к опубликованным данным, используя метод get в $ request, вместо использования синтаксиса массива.

 if (Auth::attempt(['username' => $request->get('username'), 'pw' => $request->get('password')])) { return redirect('RegView'); } 

Согласно документам , есть два способа сделать это (завернутый для ясности в этом сообщении):

 if (Auth::attempt([ 'username' => $request->username, 'pw' => $request->password ])) { return redirect('RegView'); } 

или

 if (Auth::attempt([ 'username' => $request->input('username'), 'pw' => $request->input('password') ])) { return redirect('RegView'); } 

В вашем контроллере:

 if (Auth::attempt(['username' => $request->get('username'), 'password' => $request->get('password')])) { return redirect('RegView'); } 

В вашей модели:

 protected $fillable = [ 'username', 'password' ];