我在表上有一个插入触发器(MySQL),用于更改列的值。
但是在执行->save()
触发它应该完成之后,如果我object->number
(数字是在触发器上设置的列)我什么也得不到,而如果我查看数据库编号已设置。
我不知道为什么如果在插入过程中也设置了自动增量id并且我可以得到它。
感谢您的帮助
$object = new Table();
$object->col1 = 'hello';
$object->save();
echo $object->number;
Number是前插入触发器
更改的列这是触发器的代码
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
答案 0 :(得分:2)
当您调用save
时,模型上的当前值将持久保存到数据库,而Laravel ORM不会反映数据库系统所做的更改,除非再次手动提取。
要获取更新的值,您可以使用fresh
方法。
$object->fresh()->number;