我正在我的laravel 4.1应用程序中设置密码提醒功能,一切似乎都可以找到,直到我提交重置表单。当我提交密码重置表单时,我收到此错误:
ErrorException
Trying to get property of non-object
open: C:\\xampp\WWW\myApp\vendor\laravel\framework\src\Illuminate\Auth\Reminders\DatabaseReminderRepository.php
本手册是我的向导。我已成功通过电子邮件发送重置链接,并通过链接获取表单。但提交表格时会出现上述错误。请帮忙。感谢。
行。这是我在Remind Controller中负责密码重置的代码。
public function postReset()
{
$credentials = Input::only(
'email', 'password', 'password_confirmation', 'token'
);
$response = Password::reset($credentials, function($user, $password)
{
$user->password = Hash::make($password);
$user->save();
});
switch ($response)
{
case Password::INVALID_PASSWORD:
case Password::INVALID_TOKEN:
case Password::INVALID_USER:
return Redirect::back()->with('error', Lang::get($response));
case Password::PASSWORD_RESET:
return Redirect::to('/');
}
}
注意:它是使用生成的 php art ... auth:提醒 - 控制器根据laravel doc。 感谢您发表评论。
答案 0 :(得分:1)
我查看了我的DatabaseReminderRepository.php
我用dd($提醒)检查了$提醒并给我一个数组,所以我改变了$提醒[' created_at'];
protected function reminderExpired($reminder) {
// this $reminder->created_at into this $reminder['created_at']
// $createdPlusHour = strtotime($reminder->created_at) + $this->expires;
$createdPlusHour = strtotime($reminder['created_at']) + $this->expires;
return $createdPlusHour < $this->getCurrentTime();
}