[英]How to get value from column that was changed by trigger
我在更改列值的表上有一个插入前触发器(MySQL)。
但是在执行了应该完成的触发器->save()
,如果我执行object->number
(number 是在触发器上设置的列),我什么也得不到,而如果我查看数据库编号是放。
我不知道如果在插入期间还设置了自动增量 ID 并且我可以得到它,为什么会发生这种情况。
谢谢您的帮助
$object = new Table();
$object->col1 = 'hello';
$object->save();
echo $object->number;
Number 是由 before insert 触发器更改的列
这是触发器的代码
CREATE DEFINER=`homestead`@`%` TRIGGER `database`.`Table_BEFORE_INSERT` BEFORE INSERT ON `table` FOR EACH ROW
BEGIN
SET New.number = (SELECT COUNT(*) from `table` where relation_id = New.relation_id);
END
当您调用save
,模型上的当前值将被持久化到数据库中,并且 Laravel ORM 不会反映数据库系统所做的更改,除非它再次手动获取。
要获取更新的值,您可以使用fresh
方法。
$object->fresh()->number;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.