繁体   English   中英

如何从触发器更改的列中获取值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM