2017-05-07 12 views
0

私はyii2のバックエンドログインページをmysqlの自分のデータベースに作っています。私のデータベースには、 "username"と "password"の列を持つテーブル "konto"があります。私はデフォルトのyii2関数を使用していますが、ログインしようとすると「未知のプロパティを取得しています:common \ models \ User :: password_hash」というメッセージが表示されます。yii2不明なプロパティを取得する:common models User :: password_hash

バックエンドの機能/common/models/User.php

が間違っている可能性があります。私は同様の質問を見つけてそれを

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

に変更しようとしましたが、エラーのユーザー名またはパスワードメッセージが表示されます。私は間違って何をしていますか?

+0

usersテーブルには、auth_key、password_hash、password_reset_tokenが必要です。これらの列をkontoテーブルに追加する必要があります。 –

答えて

0

Yiiにはいくつかの追加の列が必要でした。これらの列をkontoテーブルに追加する必要があります。

'auth_key', 
'password_hash, 
'password_reset_token', 

Yiiは新しいレコードを保存しながらパスワードハッシュを生成します。 auth_keyはREST APIサービスに役立ち、password_reset_tokenは忘れたパスワードをリセットするのに便利です。

私はあなたが答えを得たと思います。

0

kontoテーブルに列を追加する必要はありません。 以下のようにモデルファイルにpublic $ password_hashを追加してください。

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

    ..... 
    ..... 
} 
関連する問題