Sup*_*fly 5 php laravel laravel-4
我正在尝试在Laravel中重设用户密码,但是Password :: reset方法正在password_tokens表中查找电子邮件列,而不是id列。
$credentials = ['password' => Input::get('password'),
'id' => $currentUser->id,
'token' => Input::get('token'),
'password_confirmation' => Input::get('password_confirmation')];
return Password::reset($credentials, function($user, $password)
{
$user->password = Hash::make($password);
$user->save();
return Redirect::to('public_site.admin')->with('flash', 'Your password has been reset');
});
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ email”(SQL:select * from
password_tokenswheretoken= cVh08P70IfWrni2PCxP0KXGyihhc3d2u限制1)
我尚未通过$ credentials传递电子邮件,并且不确定在哪里可以设置为使用用户ID(id是用户表的主键,而user_id是password_tokens中的外键)。
我可以在应用程序的其他部分成功使用Auth,并且也可以使用来查找用户User::find($userId);,所以我认为User模型的设置方式没有问题。
Password :: reset在哪里寻找查询条件?它是用户模型的一部分,还是基于它收到的输入,还是在某个地方的配置文件中?
这是因为密码重置无论如何都需要电子邮件,否则您将如何发送密码?由于电子邮件必须与 ID 一样唯一,因此他们不遗余力地通过 ID 检查来实现这一点,因为电子邮件比较也同样有效。
为什么需要它作为 ID?
| 归档时间: |
|
| 查看次数: |
3383 次 |
| 最近记录: |