Php Laravel5内置脚手架试图使用用户名而不是电子邮件错误
我已经创建了一个列username,并将其填入用于laravel 5内置登录脚手架的users表中,我正在尝试使用username而不是默认的电子邮件,因此我在laravel\vendor\compiled.php中找到了以下代码(参考下文) 这是默认代码Php Laravel5内置脚手架试图使用用户名而不是电子邮件错误,php,laravel,laravel-5,Php,Laravel,Laravel 5,我已经创建了一个列username,并将其填入用于laravel 5内置登录脚手架的users表中,我正在尝试使用username而不是默认的电子邮件,因此我在laravel\vendor\compiled.php中找到了以下代码(参考下文) 这是默认代码 public function postLogin(Request $request) { $this->validate($request, array('email' => 'required|email', 'pas
public function postLogin(Request $request)
{
$this->validate($request, array('email' => 'required|email', 'password' => 'required'));
$credentials = $request->only('email', 'password');
if ($this->auth->attempt($credentials, $request->has('remember'))) {
return redirect()->intended($this->redirectPath());
}
return redirect($this->loginPath())->withInput($request->only('email', 'remember'))->withErrors(array('email' => $this->getFailedLoginMessage()));
}
到
但它给了我一个错误的说法
Connection.php第620行中的QueryException:
SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“0”(SQL:select*fromdodong_用户
whereusername
=dodong@dodong.com和0
=0限制1)
任何帮助,建议,建议,线索,想法来解决这个问题,使我可以登录用户名而不是电子邮件将不胜感激。谢谢大家! 改变这一点:
if ($this->auth->attempt(['username' => $request->input('email'), 'password' => $request->input('password'), $request->has('remember')])) {
为此:
if ($this->auth->attempt(['username' => $request->input('email'), 'password' => $request->input('password')], $request->has('remember'))) {
看起来您刚刚把$request->has('memory')
放错了位置。它正在查找一个名为0
的列,因为您将$request->has('memory')
的值作为尝试()
数据的一部分传递
要使用来自的示例,您正在执行以下操作:
if (Auth::attempt(['email' => $email, 'password' => $password, $remember]))
{
// The user is being remembered...
}
if (Auth::attempt(['email' => $email, 'password' => $password], $remember))
{
// The user is being remembered...
}
当你应该这样做的时候:
if (Auth::attempt(['email' => $email, 'password' => $password, $remember]))
{
// The user is being remembered...
}
if (Auth::attempt(['email' => $email, 'password' => $password], $remember))
{
// The user is being remembered...
}