Yii2 activerecord 不返回数据库触发器值
Yii2 activerecord not returning database trigger value
我刚刚了解了YII2框架,我只是创建一个activerecord模型。可以说 Item
和 table item
我只是在插入之前添加了一个触发器来为字段添加值。我正在尝试这样测试:
$item = new Item();
$item->name = 'item 1';
$item->save();
die(var_dump('<pre>', $item->attributes));
触发代码如下:
BEGIN
SET new.mycolumn = store_procedured_function();
END
转储结果为
Array(
['id']=>
int(123)
['name']=>
string(6) "item 1"
['mycolumn']=>
NULL
);
但是当我检查数据库时 mycolumn
不为空且 id
return 值。为什么 mycolumn
不像 id
那样显示值?以及如何在 activerecord 函数 save() 之后获取 mycolumn
值?
出于性能原因,Yii 2 不会在保存后自动从数据库中获取属性 - 在大多数情况下它不会改变任何东西,只是创建额外的无用查询。如果您依赖某些数据库触发器,则可能需要在 save()
.
之后调用 refresh()
$item->save();
$item->refresh();
var_dump($item->attributes);
我刚刚了解了YII2框架,我只是创建一个activerecord模型。可以说 Item
和 table item
我只是在插入之前添加了一个触发器来为字段添加值。我正在尝试这样测试:
$item = new Item();
$item->name = 'item 1';
$item->save();
die(var_dump('<pre>', $item->attributes));
触发代码如下:
BEGIN
SET new.mycolumn = store_procedured_function();
END
转储结果为
Array(
['id']=>
int(123)
['name']=>
string(6) "item 1"
['mycolumn']=>
NULL
);
但是当我检查数据库时 mycolumn
不为空且 id
return 值。为什么 mycolumn
不像 id
那样显示值?以及如何在 activerecord 函数 save() 之后获取 mycolumn
值?
出于性能原因,Yii 2 不会在保存后自动从数据库中获取属性 - 在大多数情况下它不会改变任何东西,只是创建额外的无用查询。如果您依赖某些数据库触发器,则可能需要在 save()
.
refresh()
$item->save();
$item->refresh();
var_dump($item->attributes);