無涯教程: Laravel 8 - 模型觀察者
在這裡,我將向您展示laravel 8觀察者示例。該示例將幫助您如何使用laravel 8模型觀察器。
Laravel觀察者用於對模型事件監聽器進行分組。 Laravel Observers將偵聽模型方法(例如建立,更新和刪除)的事件。
Eloquent hook
Retrieved:查詢資料後。
Creating:在建立資料之前。
Created:建立資料後。
Updating:在更新資料之前。
Updated:更新資料後。
Saving:儲存資料之前(建立或更新)。
Saved:儲存資料後(建立或更新)。
Deleting:在刪除資料或軟刪除之前。
Deleted:刪除或軟刪除資料後。
Restoring:軟刪除資料恢復前。
Restoring:軟刪除資料恢復後。
現在在這裡,我們將看到一個簡單的示例,我有一個產品模型(Product Model),它具有name,slug,price和unique_id列。因此,我需要建立一個僅以價格命名的記錄。但是當它建立時,我需要根據名稱生成slug並自動生成unique_id。
app/Models/Product.php
slug = Str::slug($product->name); } /** * Handle the Product "created" event. * * @param AppModelsProduct $product * @return void */ public function created(Product $product) { $product->unique_id = 'PR-'.$product->id; $product->save(); } /** * Handle the Product "updated" event. * * @param AppModelsProduct $product * @return void */ public function updated(Product $product){ } /** * Handle the Product "deleted" event. * * @param AppModelsProduct $product * @return void */ public function deleted(Product $product){ } /** * Handle the Product "restored" event. * * @param AppModelsProduct $product * @return void */ public function restored(Product $product){ } /** * Handle the Product "force deleted" event. * * @param AppModelsProduct $product * @return void */ public function forceDeleted(Product $product){ } }?php>
在提供者上註冊Observers類。
app/Providers/EventServiceProvider.php
[ SendEmailVerificationNotification::class, ], ]; /** * Register any events for your application. * * @return void */ public function boot() { Product::observe(ProductObserver::class); } }?php>
建立示例路由:
routes/web.php
|-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('product', [ProductController::class, 'index']);
建立控制器路由:
app/Http/Controllers/ProductController.php
'Platinum 1', 'price' => 10 ]); dd($product); } }?php>
現在您可以執行專案並檢視。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4729/viewspace-2796951/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 無涯教程: Laravel 8 - 自定義函式介紹Laravel函式
- 透過觀察者監聽模型事件模型事件
- 通過觀察者監聽模型事件模型事件
- Laravel核心程式碼學習 — 觀察者模式Laravel模式
- 無涯教程:Node.js - OSNode.js
- 無涯教程:Docker - Python安裝DockerPython
- 無涯教程:Docker - Java安裝DockerJava
- 觀察者Observer模型事件,使用注意情況Server模型事件
- 觀察者模式-將訊息通知給觀察者模式
- 觀察者模式模式
- Laravel 的觀察者使用記錄與兩種方式Laravel
- 無涯教程: Node.js - Web模組Node.jsWeb
- 無涯教程: Node.js - 事件傳送Node.js事件
- 無涯教程: Nginx - 指令與上下文Nginx
- PHP觀察者模式PHP模式
- 觀察者模式(2)模式
- Unity——觀察者模式Unity模式
- observer-觀察者模式Server模式
- 重構 - 觀察者模式模式
- 18_觀察者模式模式
- PHP-觀察者模式PHP模式
- 大話--觀察者模式模式
- PHP 之觀察者模式PHP模式
- redux與觀察者模式Redux模式
- 觀察者模式介紹模式
- 透過GDK8觀察堆
- 進擊的觀察者模式模式
- 設計模式 —— 觀察者模式設計模式
- 設計模式(觀察者模式)設計模式
- 設計模式----觀察者模式設計模式
- Spring中的觀察者模式Spring模式
- 實驗 21:觀察者模式模式
- 【設計模式】觀察者模式設計模式
- 行為型:觀察者模式模式
- 設計模式——觀察者模式設計模式
- 觀察者模式,無需多執行緒完成資料監聽模式執行緒
- 關於 Laravel increment 與 decrement 不能觸發觀察者模式的解決方案LaravelREM模式
- PHP設計模式-觀察者模式PHP設計模式