【问题标题】:yii2 Getting unknown property: common\models\User::password_hashyii2 获取未知属性:common\models\User::password_hash
【发布时间】:2017-05-07 19:27:31
【问题描述】:

我正在将 yii2 中的后端登录页面添加到我在 mysql 中的数据库中。在我的数据库中,我有表“konto”,列:“用户名”和“密码”。我正在使用默认的 yii2 功能,但当我尝试登录时,我仍然收到“获取未知属性:common\models\User::password_hash”。

我的理解是 backend/common/models/User.php 中的函数

 public function validatePassword($password)
    {
        return Yii::$app->security->validatePassword($password, $this->password_hash);
    }

可能是错误的。我发现了类似的问题并试图将其更改为

public function validatePassword($password)
{
    return $this->password === Yii::$app->security->generatePasswordHash ($password);
}

但随后我收到错误的用户名或密码消息。我做错了什么?

【问题讨论】:

  • users 表必须有 auth_key、password_hash 和 password_reset_token。所以你必须在 konto 表中添加这些列。

标签: php yii2 yii2-advanced-app


【解决方案1】:

无需在 konto 表中添加列。 请在您的模型文件中添加 public $password_hash,如下所示。

class User extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public $password_hash;

    .....
    .....
}

【讨论】:

    【解决方案2】:

    Yii 需要一些额外的列。所以必须将这些列添加到您的 konto 表中。

    'auth_key',
    'password_hash,
    'password_reset_token',
    

    Yii 将生成密码哈希,同时保存新记录。 auth_key 可用于 REST API 服务,password_reset_token 可用于重置忘记的密码。

    希望你得到答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 2023-04-10
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      相关资源
      最近更新 更多