如何使用模型事件与laravel查询生成器(How to use model events with

2019-10-20 15:16发布

我使用的模型事件,如静态::节能,静::保存,等在我的模型的静态函数引导方法,当用户保存新的帖子说的伟大工程,但是当我做这样的事情:

$post::where('id', $post_id)->update(array('published'=>1));

以这种方式更新不运行这些模型事件。 我目前的解决方法就是不要使用更新的这种方法,而是做:

$post = Post::find($post_id);
$post->published = 1;
$post->save();

但有什么办法,使模型事件使用查询生成器的第一个例子工作?

Answer 1:

模型事件将无法与查询生成器在所有工作。

一种选择是使用事件侦听器,用于illuminate.query/Illuminate/Database/Connection.php 。 但是,这将只工作savedupdateddeleted 。 并且需要一些工作,包括处理查询和寻找SQL条款,更不用说DB可移植性问题这样。

第二个选择,你不想要的,是侃侃而谈。 你应该仍然认为它,因为你已经定义的事件。 这样,你也可以使用结尾事件-ing



文章来源: How to use model events with query builder in laravel