0

我正在尝试使用 MySQL 实现用户身份验证(重置电子邮件功能),但我一直收到此错误User must implement Remindable interface.,我知道这UserRemindableInterface因为我使用的是 Laravel 4 附带的身份验证系统。

并且在数据库配置文件中输入了正确的数据库凭据。任何帮助将不胜感激。谢谢你。

这是代码:

配置/auth.php

return array(

  /*
  |--------------------------------------------------------------------------
  | Default Authentication Driver
  |--------------------------------------------------------------------------
  |
  | This option controls the authentication driver that will be utilized.
  | This drivers manages the retrieval and authentication of the users
  | attempting to get access to protected areas of your application.
  |
  | Supported: "database", "eloquent"
  |
  */

  'driver' => 'database',

  /*
  |--------------------------------------------------------------------------
  | Authentication Model
  |--------------------------------------------------------------------------
  |
  | When using the "Eloquent" authentication driver, we need to know which
  | Eloquent model should be used to retrieve your users. Of course, it
  | is often just the "User" model but you may use whatever you like.
  |
  */

  'model' => 'User',

  /*
  |--------------------------------------------------------------------------
  | Authentication Table
  |--------------------------------------------------------------------------
  |
  | When using the "Database" authentication driver, we need to know which
  | table should be used to retrieve your users. We have chosen a basic
  | default value but you may easily change it to any table you like.
  |
  */

  'table' => 'users',

  /*
  |--------------------------------------------------------------------------
  | Password Reminder Settings
  |--------------------------------------------------------------------------
  |
  | Here you may set the settings for password reminders, including a view
  | that should be used as your password reminder e-mail. You will also
  | be able to set the name of the table that holds the reset tokens.
  |
  | The "expire" time is the number of minutes that the reminder should be
  | considered valid. This security feature keeps tokens short-lived so
  | they have less time to be guessed. You may change this as needed.
  |
  */

  'reminder' => array(

    'email' => 'emails.auth.reminder',

    'table' => 'password_reminders',

    'expire' => 60

  )

);

模型/用户.php

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface
{

  /**
   * The database table used by the model.
   *
   * @var string
   */
  protected $table = 'users';

  /**
   * The attributes excluded from the model's JSON form.
   *
   * @var array
   */
  protected $hidden = array('password');

  /**
   * Get the unique identifier for the user.
   *
   * @return mixed
   */
  public function getAuthIdentifier()
  {
    return $this->getKey();
  }

  /**
   * Get the password for the user.
   *
   * @return string
   */
  public function getAuthPassword()
  {
    return $this->password;
  }

  /**
   * Get the e-mail address where password reminders are sent.
   *
   * @return string
   */
  public function getReminderEmail()
  {
    return $this->email;
  }

}
4

1 回答 1

0

如果您使用'driver' => 'database',则无需指定任何模型,也无需担心这一点,因为Auth它将直接使用查询生成器处理表。我推荐你使用eloquent,因为通过模型你可以获得更多的功能,比如提醒、关系访问等。

于 2013-10-02T06:34:53.580 回答