在 yii2 中将 uuid 分配给模型

Mis*_*cha 4 php mysql yii2

有没有办法将数据库函数调用分配给模型属性Yii2

就像是:

$myModel->myAttribute = 'mysql:UUID()';
$myModel->save();
Run Code Online (Sandbox Code Playgroud)

或者,如果我想用保存时填充属性,我该怎么做uuid

Flo*_*Gee 5

你可以做的是使用 yii\db\Expression 类:

$myModel->myAttribute = new yii\db\Expression('UUID()');
$myModel->save();
Run Code Online (Sandbox Code Playgroud)

https://www.yiiframework.com/doc/api/2.0/yii-db-expression

如果您想在创建时设置 UUID,请在模型类中插入以下函数:

public function beforeSave($insert)
{
        if($insert === self::EVENT_BEFORE_INSERT){
                $this->myAttribute = new yii\db\Expression('UUID()');
        }
        return parent::beforeSave($insert);
}
Run Code Online (Sandbox Code Playgroud)

https://www.yiiframework.com/doc/api/2.0/yii-db-baseactiverecord#beforeSave()-detail

  • 完美的。yii\db\Expression 正是我正在寻找的。谢谢兄弟。 (3认同)