Php 如何在Laravel中解决此登录错误
我创建了一个名为UserLogin.blade.php的登录表单。我创建了一个名为UserLoginControl.php的控制器和一个名为login.php的模型。现在我想使用数据库中的用户名和密码登录我的系统。但是,在我输入用户名和密码并单击“登录”按钮后,它会显示此错误- (1/1)错误异常 未定义索引:密码 但是,我已经在UserLoginController.php文件中声明了用户名和密码 我怎样才能解决这个问题 下面是UserLogin.blade.php(视图文件) 以下是我创建的路线 这是我的登录表Php 如何在Laravel中解决此登录错误,php,mysql,laravel,Php,Mysql,Laravel,我创建了一个名为UserLogin.blade.php的登录表单。我创建了一个名为UserLoginControl.php的控制器和一个名为login.php的模型。现在我想使用数据库中的用户名和密码登录我的系统。但是,在我输入用户名和密码并单击“登录”按钮后,它会显示此错误- (1/1)错误异常 未定义索引:密码 但是,我已经在UserLoginController.php文件中声明了用户名和密码 我怎样才能解决这个问题 下面是UserLogin.blade.php(视图文件) 以下是我创建的
您应该使用$request上的get方法访问发布的数据,而不是使用数组语法
if (Auth::attempt(['username' => $request->get('username'), 'pw' => $request->get('password')])) {
return redirect('RegView');
}
您应该使用$request上的get方法访问发布的数据,而不是使用数组语法
if (Auth::attempt(['username' => $request->get('username'), 'pw' => $request->get('password')])) {
return redirect('RegView');
}
根据,有两种方法可以做到这一点(为了清晰起见,在本文中进行了包装):
或
根据,有两种方法可以做到这一点(为了清晰起见,在本文中进行了包装):
或
首先检查您的型号
login
在登录数据库模式中是否有一个字段password
,然后更改以下内容:
if (Auth::attempt(['username' => $request->get('username'), 'pw' => $request->get('password')])) {
return redirect('RegView');
}
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
'users' => [
'driver' => 'eloquent',
'model' => App\login::class,
],
致:
也可以转到您的应用程序/Http/Auth/LoginController.php并添加以下内容:
/**
* Get the login username to be used by the controller.
*
* @return string
*/
public function username()
{
return 'username';
}
最后改变这一点:
if (Auth::attempt(['username' => $request->get('username'), 'pw' => $request->get('password')])) {
return redirect('RegView');
}
'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
@if($errors->any())
@foreach($errors->all()作为$error)
- {{$error}}
@endforeach
@恩迪夫
如果您真的想使用pw
而不是password
查看以下答案:
首先检查您的型号
登录
在登录数据库模式中是否有一个字段密码
,然后更改此字段:
if (Auth::attempt(['username' => $request->get('username'), 'pw' => $request->get('password')])) {
return redirect('RegView');
}
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
'users' => [
'driver' => 'eloquent',
'model' => App\login::class,
],
致:
也可以转到您的应用程序/Http/Auth/LoginController.php并添加以下内容:
/**
* Get the login username to be used by the controller.
*
* @return string
*/
public function username()
{
return 'username';
}
最后改变这一点:
if (Auth::attempt(['username' => $request->get('username'), 'pw' => $request->get('password')])) {
return redirect('RegView');
}
'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
@if($errors->any())
@foreach($errors->all()作为$error)
- {{$error}}
@endforeach
@恩迪夫
如果您真的想使用pw
而不是password
查看以下答案:
在控制器中:
if (Auth::attempt(['username' => $request->get('username'), 'password' => $request->get('password')])) {
return redirect('RegView');
}
在您的模型中:
protected $fillable = [
'username', 'password'
];
在控制器中:
if (Auth::attempt(['username' => $request->get('username'), 'password' => $request->get('password')])) {
return redirect('RegView');
}
在您的模型中:
protected $fillable = [
'username', 'password'
];
请求方法的可能副本是对象而不是数组。因此,您将通过$request->password@BikashP-但是,给了我未定义的索引:密码错误。。如何修复此问题?请求方法的可能副本是对象而不是数组。因此,您将通过$request->password@BikashP-但是,给了我未定义的索引:密码错误。。我该如何解决这个问题呢?不过,它给了我一个未定义的索引:密码错误。。我该如何解决这个问题呢?不过,它给了我一个未定义的索引:密码错误。。我该如何解决这个问题呢?不过,它给了我一个未定义的索引:密码错误。。我该如何解决这个问题呢?不过,它给了我一个未定义的索引:密码错误。。如何修复此问题?当我使用此选项时,页面将刷新。。什么事也没发生。。如何解决这个问题??你能试着用
dd($request->all())调试它吗在if语句之前在控制器中编写>并检查它是否有来自表单的数据?它将输出一个类似以下内容的数组:3[▼ “_token”=>“ytBDTz45zi1ac1oOgwH83XFEszcpMpsc0MlZ3A6l”“用户名”=>”test@gmail.com“password”=>“test”]
Yh,它会像这样显示正确的用户名和密码-数组:4[▼ “_token”=>“TixaQBCmgwXoCDFs5owm9r4hexRPhzfaxFBgqRzR”“用户名”=>“用户”“登录”=>“登录”]if(auth()->尝试(['email'=>$request->email,'password'=>$request->password]){return redirect()->路由('dashboard');}否则{return return back()(['message'=>'请检查您的凭据并重试。];}
尝试类似的操作,然后尝试添加dd()
在if语句中,如果您的代码正在执行。但是,数据库中没有名为email的列。如何修复此问题?当我使用此选项时,页面将刷新。什么也没有发生。如何修复此问题?您是否可以尝试使用dd($request->all()调试它;
在if语句之前的控制器中,检查它是否有来自表单的数据?它将输出类似以下内容的数组:3[▼ “_token”=>“ytBDTz45zi1ac1oOgwH83XFEszcpMpsc0MlZ3A6l”“用户名”=>”test@gmail.com“password”=>“test”]Yh,它会像这样显示正确的用户名和密码-数组:4[▼ “_token”=>“TixaQBCmgwXoCDFs5owm9r4hexRPhzfaxFBgqRzR”“用户名”=>“用户”“登录”=>“登录”]if(auth()->尝试(['email'=>$request->email,'password'=>$request->password]){return redirect()->路由('dashboard');}否则{return return back()(['message'=>'请检查您的凭据,然后重试。];}
尝试类似的操作,并尝试在执行代码的if语句中添加dd()
。但是,数据库中没有名为email的列。我如何解决此问题??