Laravel 模型事件,调用 update 方法时不能触发?

问答 若相惜 ⋅ 于 1周前 ⋅ 最后回复由 若相惜 1周前 ⋅ 84 阅读

调用save方法的时候可以触发,update里面其实也是调用的save,为什么不触发updated,saved等模型事件

本文章首发在 Laravel China 社区

Persevere,Vtr!

成为第一个点赞的人吧 :bowtie:
最佳答案
回复数量: 8
  • 若相惜 人生不是水杯,知识不会溢出来.
    1周前

    @Summer 站长有遇到过吗

  • Summer MOD A Life-long learner.
    1周前
    1. 是否有注册
      \App\Models\User::observe(\App\Observers\UserObserver::class); ;
    2. 上面的是否写错了;
    3. 看下使用了其他插件或者扩展,或者 trait 里,是否也监控了事件,小心 creating, updating 等 ing 后缀的监控,如果他们返回了 false ,是永远无法触发 created , updated 等 ed 的事件的。
  • 若相惜 人生不是水杯,知识不会溢出来.
    1周前

    @Summer 我在用save的方式来更新模型的时候它是有触发到模型事件,但是用update来更新模型却没有触发,所以很不解

  • imzhi
    1周前

    {note} 通过 Eloquent 执行批量更新时,saved 和 updated 的模型事件不会被更新的模型触发。这是因为执行批量更新时,不会有任何模型被检索出来。

    参考链接:https://laravel-china.org/docs/laravel/5.5/eloquent/1332

  • 若相惜 人生不是水杯,知识不会溢出来.
    1周前

    @imzhi 只有检索出来才支持吗?好吧。

  • imzhi
    1周前

    @若相惜 是的,检索出来用 save 方法保存才会触发事件。

  • 若相惜 人生不是水杯,知识不会溢出来.
    1周前

    @imzhi 好吧,谢谢了

  • 若相惜 人生不是水杯,知识不会溢出来.
    1周前

    @imzhi 有什么好的方式来处理呢

暂无评论~~
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 100 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档