Yii php 单元测试 Yii::app->user->id 错误



我正在测试一个保存模型的类。此模型具有使用此方法保存我将要插入的记录的用户

的行为
 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();
}