我正在测试一个保存模型的类。此模型具有使用此方法保存我将要插入的记录的用户
的行为 public function beforeSave($event) {
if (($this->getOwner()->getTableSchema()->getColumn($this->campoUsuarioCreacion)!==null))
$this->getOwner()->{$this->campoUsuarioCreacion} = Yii::app()->user->id;
if ($this->getOwner()->getTableSchema()->getColumn($this->campoUsuarioModificacion)!==null)
$this->getOwner()->{$this->campoUsuarioModificacion} = Yii::app()->user->id;
return parent::beforeSave();
}
但是当我测试时,Yii::app()->user->id 存在问题。我认为问题是没有用户登录。那么,如何在不再次复制带有哈尔编码用户 ID 的类的情况下解决问题?有没有办法设置应用程序用户 ID?
在不讨论用户是否登录或 Yii::app()->user->id 是否定义的情况下,您需要将其添加到函数的底部:
return parent::beforeSave();
例如:
public function beforeSave($event) {
if (($this->getOwner()->getTableSchema()->getColumn($this->campoUsuarioCreacion)!==null))
$this->getOwner()->{$this->campoUsuarioCreacion} = Yii::app()->user->id;
if ($this->getOwner()->getTableSchema()->getColumn($this->campoUsuarioModificacion)!==null)
$this->getOwner()->{$this->campoUsuarioModificacion} = Yii::app()->user->id;
return parent::beforeSave();
}