网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

laravel学习笔记之模型事件有什么用-创新互联

这篇文章主要为大家展示了“laravel学习笔记之模型事件有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“laravel学习笔记之模型事件有什么用”这篇文章吧。

10年积累的成都做网站、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有织金免费网站建设让你可以放心的选择与我们合作。

用法示例

一 、简单粗鲁(用于本地测试)


路由中定义:

Event::listen('eloquent.updated: App\Post',function (){
 dump('测试一下修改事件');
});
Route::post('/post/{id}', 'PostController@update');

二 、生成事件和监听器


在 EventServiceProvider 定义对应关系

 protected $listen = [
  'App\Events\PostEvent' => [
    'App\Listeners\PostListener',
   ],
 ];
php artisan event:generate //生成文件

event 中注入要操作的类


listen 中handle 方法注入对应事件类


 public function handle(PostEvent $event)
 {
  dump('测试一下修改事件');
 }

最后在 post 模型中添加 'events' 属性

 protected $events = [
   'updated' => PostListener::class
 ];

三 、利用框架的 boot 方法


直接在相关 Model 中定义


 public static function boot() {
  parent::boot();
  
  static::updated(function($model) {
   dump('测试一下修改事件');
  });
 }

四 、定义Trait


如果想对多个模型的updated 或 created 事件进行一些操作,该不会每个模型都单独写一个吧.例如: 日志 .


trait LogRecord
{
 //注意,必须以 boot 开头
 public static function bootLogRecord()
 {
  foreach(static::getModelEvents() as $event) {
   static::$event(function ($model){
    $model->setRemind();
   });
  }
 }


 public static function getModelEvents()
 {
  if(isset(static::$recordEvents)){
   return static::$recordEvents;
  }
  return ['updated'];
 }

 public function setRemind()
 {
  dump('记录逻辑操作');
 }
}

然后,在模型中use trait 就可以了.


      • creating - 对象已经 ready 但未写入数据库


      • created - 对象已经写入数据库


      • updating - 对象已经修改但未写入数据库


      • updated - 修改已经写入数据库


      • saving - 对象创建或者已更新但未写入数据库


      • saved - 对象创建或者更新已经写入数据库


      • deleting - 删除前


      • deleted - 删除后


      • restoring - 恢复软删除前


      • restored - 恢复软删除后

以上是“laravel学习笔记之模型事件有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


新闻名称:laravel学习笔记之模型事件有什么用-创新互联
URL地址:http://bjjierui.cn/article/dgddcs.html

其他资讯