国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

laravel學習筆記之模型事件的幾種用法示例

2024-05-04 23:59:28
字體:
供稿:網(wǎng)友

前言

本文主要給大家介紹了關(guān)于laravel模型事件用法的相關(guān)內(nèi)容,文中通過示例代碼介紹了laravel模型事件的多種用法,下面話不多說了,來一起看看詳細的介紹吧。

用法示例

一 、簡單粗魯(用于本地測試)

路由中定義:

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

二 、生成事件和監(jiān)聽器

在 EventServiceProvider 定義對應(yīng)關(guān)系

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

event 中注入要操作的類

listen 中handle 方法注入對應(yīng)事件類

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

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

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

三 、利用框架的 boot 方法

直接在相關(guān) 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 - 對象已經(jīng) ready 但未寫入數(shù)據(jù)庫

      • created - 對象已經(jīng)寫入數(shù)據(jù)庫

      • updating - 對象已經(jīng)修改但未寫入數(shù)據(jù)庫

      • updated - 修改已經(jīng)寫入數(shù)據(jù)庫

      • saving - 對象創(chuàng)建或者已更新但未寫入數(shù)據(jù)庫

      • saved - 對象創(chuàng)建或者更新已經(jīng)寫入數(shù)據(jù)庫

      • deleting - 刪除前

      • deleted - 刪除后

      • restoring - 恢復(fù)軟刪除前

      • restored - 恢復(fù)軟刪除后

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 家居| 千阳县| 隆子县| 石林| 鄂托克旗| 静乐县| 临清市| 吴堡县| 响水县| 即墨市| 盐城市| 凤阳县| 甘洛县| 德保县| 遂宁市| 本溪| 论坛| 邮箱| 栖霞市| 增城市| 昌都县| 孝昌县| 襄汾县| 祁连县| 瑞金市| 滨海县| 尚义县| 汤阴县| 咸阳市| 榆中县| 博爱县| 吉木乃县| 姚安县| 突泉县| 鄂州市| 普兰店市| 株洲市| 揭东县| 喀什市| 上蔡县| 吉木萨尔县|