php - 将 uuid 分配给 yii2 中的模型

标签 php mysql yii2

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

类似于:

$myModel->myAttribute = 'mysql:UUID()';
$myModel->save();

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

最佳答案

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

$myModel->myAttribute = new yii\db\Expression('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 yii\db\Expression('UUID()');
        }
        return parent::beforeSave($insert);
}

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

关于php - 将 uuid 分配给 yii2 中的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58012566/

相关文章:

debugging - 动态打开/关闭 Yii 调试工具栏

Yii2:找不到我的新操作 - 404

php - 我想获取与所选图片相对应的所有相关图片

java - 如何根据屏幕可见情况将长 JSON 响应划分为模块以在 ListView 或 RecyclerView 中显示?

php - 或者在带有子查询的 Laravel 查询生成器中的 WHERE IN

php - PHP 和 MySQL 中的双重显示问题

Yii2 在创建和更新场景中使用不同的表单字段

php - $_SERVER 和 $_ENV 之间的区别

PHP : Search all record from array with specific value

mysql - Grails 数据库映射