有没有办法将数据库函数调用分配给Yii2
中的模型属性?
像这样:
$myModel->myAttribute = 'mysql:UUID()';
$myModel->save();
或者,如果我想在保存时用uuid
填充属性,我将如何做到这一点?
你可以做的是使用 yii\db\Expression 类:
$myModel->myAttribute = new yiidbExpression('UUID()');
$myModel->save();
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 yiidbExpression('UUID()');
}
return parent::beforeSave($insert);
}
https://www.yiiframework.com/doc/api/2.0/yii-db-baseactiverecord#beforeSave((-detail
要在创建操作期间生成 UUID,请在收到任何要保存的错误时将以下函数添加到您的模型中
public function beforeSave($insert)
{
if ($this->isNewRecord)
$this->myAttribute = new yiidbExpression('UUID()');
return parent::beforeSave($insert);
}