laravel 模型观察器

Posted sgm4231

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 模型观察器相关的知识,希望对你有一定的参考价值。

模型观察器

  • 对模型的生命周期内的多个时间点进行监控,分别有 ~ing 和 ~ed 事件
  • 每个监控方法接收 model 作为唯一参数

使用观察器

  • 创建观察器文件,一个普通类,不需要继承什么
  • 针对需要的事件,编写对应的 ~ing 或 ~ed 方法,方法接收 model 作为唯一参数
  • 在 AppServiceProvider 中注册

    // 在 boot 方法中
    
    YourModel::observe(YourModelObserver::class);

例子:需求,话题内容添加时提取话题的摘录

excerpt 字段存储的是话题的摘录

当一个新模型被初次保存将会触发 creating 以及 created 事件。如果一个模型已经存在于数据库且调用了 save 方法,将会触发 updating 和 updated 事件。在这两种情况下都会触发 saving 和 saved 事件。

在 AppServiceProvider 中注册

技术图片

观察器:

技术图片

app/helpers.php

function make_excerpt($value, $length = 200)

    $excerpt = trim(preg_replace(‘/\\r\\n|\\r|\\n+/‘, ‘ ‘, strip_tags($value)));
    return str_limit($excerpt, $length);


也可以直接这样用:
技术图片

 

https://learnku.com/articles/6657/model-events-and-observer-in-laravel



以上是关于laravel 模型观察器的主要内容,如果未能解决你的问题,请参考以下文章

Laravel / Eloquent 模型关系查看器

Laravel模型访问器 & 修改器

Laravel:使用模型查询构建器获取重复记录的结果

是否有必要在 laravel 中为数据库操作创建模型(用于查询构建器)?

Laravel 模型访问器从缓存中获取 - 性能增强

Laravel 雄辩与查询构建器的优缺点