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 模型数据不变,点击更新这样的逻辑,放在控制器方法中,而不应放在模型的事件中

  • 相关阅读:
    第5周进度条
    《掌握需求过程》阅读笔记02
    第3周进度条
    《掌握需求过程》阅读笔记01
    问题账户需求分析
    2016年秋季个人阅读计划
    Arrays.sort解析
    算法排序
    Oracl Over函数
    Maven初步
  • 原文地址:https://www.cnblogs.com/mouseleo/p/11691449.html
Copyright © 2011-2022 走看看