在 Yii ActiveRecord 中,是否可以在模型构造函数中设置一个属性,并且模型的 isNewRecord 属性仍然为真?
我有一个模型构造函数来创建一个私有属性来保存一个 PHPPass 密码哈希实例。当我这样做时,它会将 isNewRecord 属性设置为 false,即使该记录是新创建的。
如果 id 属性大于零,我尝试了在构造函数中调用 setIsNewRecord(true) 的解决方法,但似乎属性在构造函数中不可用。
我不得不删除构造函数,并在每个需要 phpass 的方法中声明。
用户模型的构造函数:
public function __construct(){
$this->phpass=new PasswordHash(Yii::app()->params['phpass']['iteration_count_log2'], Yii::app()->params['phpass']['portable_hashes']);
}
控制器中的用户模型初始化和 isNewRecord 条件
public function actionEdit($id = null)
{
$myModel = new User();
echo $myModel->isNewRecord; //false due to constructor
}