Php 尝试使用数据库[Yii2 Basic]中的用户登录时出现登录错误
默认设置为yii2 Basic,用户可以使用Php 尝试使用数据库[Yii2 Basic]中的用户登录时出现登录错误,php,mysql,login,yii,yii2-basic-app,Php,Mysql,Login,Yii,Yii2 Basic App,默认设置为yii2 Basic,用户可以使用user,user和admin,admin登录。 但是,我需要应用程序可以使用我的sql数据库中的用户名和密码进行访问。在我的数据库中,我有一个名为ùser的表,其中包含用户名、密码等。我正在尝试遵循建议 但是,它会给出如下错误获取只写属性:app\models\User::password 这是我的代码: User.php->model类 有人知道我为什么会收到这个错误消息吗?以及如何解决此问题,以便用户可以使用数据库中的数据登录。 任何帮助都将不胜
user,user
和admin,admin
登录。
但是,我需要应用程序可以使用我的sql数据库中的用户名和密码进行访问。在我的数据库中,我有一个名为ùser
的表,其中包含用户名、密码等。我正在尝试遵循建议
但是,它会给出如下错误获取只写属性:app\models\User::password
这是我的代码:
User.php->model类
有人知道我为什么会收到这个错误消息吗?以及如何解决此问题,以便用户可以使用数据库中的数据登录。
任何帮助都将不胜感激。谢谢您有密码设置器,但没有getter,请尝试为用户类添加getter 编辑(试试这个):
这是因为这种方法:
public function validatePassword($password) {
return $this->password === sha1($password);
}
这是什么?这是完全错误的。应该是:
public function validatePassword($password)
{
return Yii::$app->security->validatePassword($password, $this->password_hash);
}
public function setPassword($password)
{
$this->password_hash = Yii::$app->security->generatePasswordHash($password);
}
编辑:和设置密码方法应为:
public function validatePassword($password)
{
return Yii::$app->security->validatePassword($password, $this->password_hash);
}
public function setPassword($password)
{
$this->password_hash = Yii::$app->security->generatePasswordHash($password);
}
你是说密码?你能解释一下代码到底是怎么写的吗?谢谢你!谢谢:D你真棒
public function validatePassword($password) {
return $this->password === sha1($password);
}
public function validatePassword($password)
{
return Yii::$app->security->validatePassword($password, $this->password_hash);
}
public function setPassword($password)
{
$this->password_hash = Yii::$app->security->generatePasswordHash($password);
}