zoukankan      html  css  js  c++  java
  • Laravel Model updating&updated 事件使用注意事项

    1 触发条件

    1.1 updating

    1.1.1 如果字段无变化,不会触发此事件。

    1.1.2 除非更改至少一个字段的值

    2 事件逻辑不会覆盖

    2.1 Trait 中定义事件如下

    /**
    * The boot method.
    */
    public static function bootHasArchive()
    {
    static::creating(function ($model) {
    Log::info(__FILE__);
    });

    static::updating(function ($model) {
    Log::info(__FILE__);
    });

    static::deleting(function ($model) {
    if ($archive = $model->archive) {
    $archive->delete();
    }
    });
    }

    2.2 Observer 中定义事件如下:
    public function creating(News $news)
    {
    Log::info(__FILE__);
    }

    public function updating(News $news)
    {
    Log::info(__FILE__);
    }

    2.3 两个位置定义的逻辑都会执行
    2.4 顺序是: trait->observer
    3 结论
    3.1 update 事件用来处理 model changed 的逻辑
    3.2 模型数据不变,点击更新这样的逻辑,放在控制器方法中,而不应放在模型的事件中

  • 相关阅读:
    定时器应用(函数封装)
    js中的作用域
    js函数传参
    js数据类型转换
    jQuery总结
    少些招数,多些内力
    浏览器中的标签切换事件
    正则表达式之小有名气
    正则表达式之初入江湖
    详解apply
  • 原文地址:https://www.cnblogs.com/mouseleo/p/11691449.html
Copyright © 2011-2022 走看看