Php yii2覆盖模型法
我正在尝试在Yii2上创建一个简单的项目。现在我正在创建用户功能。我已经用Gii创建了用户模型和CRUD。当我创建新用户或编辑时,模型以纯文本形式保存密码。我想覆盖此功能,以便能够以md5格式保存密码 在Zend框架中也有类似的能力。 我有密码字段,当我想更改默认设置密码行为时,我只是在模型中创建了setPassword方法。 Yii2的正确方式是什么Php yii2覆盖模型法,php,yii2,Php,Yii2,我正在尝试在Yii2上创建一个简单的项目。现在我正在创建用户功能。我已经用Gii创建了用户模型和CRUD。当我创建新用户或编辑时,模型以纯文本形式保存密码。我想覆盖此功能,以便能够以md5格式保存密码 在Zend框架中也有类似的能力。 我有密码字段,当我想更改默认设置密码行为时,我只是在模型中创建了setPassword方法。 Yii2的正确方式是什么 在我的User.php模型类中,我创建了setPassword($password)方法,但它没有被执行(我将var_dump放入其中进行检查)
在我的User.php模型类中,我创建了setPassword($password)方法,但它没有被执行(我将var_dump放入其中进行检查)。您可以在保存之前实现
方法,并加密密码
或者,您可以在调用$model->save()
之前,在控制器中的actionCreate
方法中执行此操作,方法基于:
模型负责创建新的用户模型
运行此进程的控制器是具有操作的SiteController-当SignupForm正确地load()
-调用SignupForm中的方法signup()
当数据更新时,初始化用户类的新实例
通过调用$user->setPassword($this->password)设置新密码
-$this->password
是用户选择的原始纯文本密码
方法设置基于纯文本密码生成的password\u hash
属性-此哈希密码存储在数据库中
您可以通过修改setPassword()
(但不建议这样做)来更改密码散列的方式
检查这是如何完成的。我想了解它是如何工作的,我不需要它完成,只是理解