在laravel 4.1中重置密码:尝试获取非对象的属性

时间:2014-04-11 09:16:16

标签: php laravel laravel-4

我正在我的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。 感谢您发表评论。

1 个答案:

答案 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();
}