如何在yii中添加一些字到用户名?

laik7k3q  于 2022-11-09  发布在  其他
关注(0)|答案(3)|浏览(153)

我是网站的管理员,当我注册新用户时,我想将我的用户名添加到新用户名中。例如:
我用户名:管理者
新用户名:试验,测验
结果:经理测试
我想验证结果。我在validate()之前使用了,并在其中添加了我的用户名:

protected function beforeValidate()
{
    $this->username = Yii::app()->user->name.'_'.$this->username;
    return parent::beforeValidate();
}

但存储到数据库的内容是:实际上我的程序在验证前调用了3次。
怎么办?我想在validate函数之前读一次。

ergxz8rk

ergxz8rk1#

你可以检查一个新的记录是否在你创建时添加了前缀并为此使用“beforesave”。

public function beforeSave(){
    parent::beforeSave();
    if($this->isNewRecord())
        $this->username = Yii::app()->user->name.'_'.$this->username;
    return true;
}
q43xntqr

q43xntqr2#

if(end(explode('_',Yii::app()->user->name)) != $this->username){
    $this->username = Yii::app()->user->name.'_'.$this->username;
}
return parent::beforeValidate();
pgvzfuti

pgvzfuti3#

为什么不在保存之前进行验证呢?验证你知道你要添加的东西有什么意义呢?让validate不做任何事情,然后在beforeSave中添加你想要的东西。

相关问题