使用中間件進行表操作 laravel 5.1 (Using middleware for table manipulation laravel 5.1)


問題描述

使用中間件進行表操作 laravel 5.1 (Using middleware for table manipulation laravel 5.1)

目前我正在 laravel 中開發一個中小型應用程序我在 laravel 中遇到中間件,我的問題是我可以使用中間件在我的表中進行更改,例如,在我的應用程序(食堂管理系統)中,當用戶訂購時從菜單中取出一些東西並提出訂單請求,然後在將訂單插入模型表之前,我想從他的餘額中減去訂單金額。我正在考慮這樣做的原因是因為餘額屬性是用戶表的一部分,訂單金額是訂單表的另一部分,我無法在它們之間開發任何數據關係(但我推導出它們之間的多對一關係) . 所以我不打算只使用數據關係做這件事,所以那是我遇到中間件的時候。所以幫我解決這個問題,我也可以在一個控制器功能中使用兩個模型嗎?


參考解法

方法 1:

Middleware is executed before or after a request is processed. It's not a place where you should execute business logic you're describing.

A tool that better suits your needs could be Eloquent's model observers ‑ you can read more about them here: http://laravel.com/docs/5.0/eloquent#model‑observers

In your case, you could register a OrderObserver that would reduce user's balance after an order is placed. A basic example:

class OrderObserver {
  public function created($order) {
    $user = $order‑>user;
    $user‑>balance = $user‑>balance ‑ $order‑>quantity;
    $user‑>save();
  }
}

(by robinhoodjedrzej.kurylo)

參考文件

  1. Using middleware for table manipulation laravel 5.1 (CC BY‑SA 2.5/3.0/4.0)

#laravel-middleware #laravel-5 #Laravel #PHP #laravel-5.1






相關問題

使用中間件進行表操作 laravel 5.1 (Using middleware for table manipulation laravel 5.1)

Laravel 中間件“僅”為每條路線觸發 (Laravel middlware 'only' fires for every route)

在 laravel 5.1 中檢查管理員角色 (Checking admin roles in laravel 5.1)

在laravel 5中使用中間件重定向循環 (redirect loop with middleware in laravel 5)

Laravel - 中間件後清空 $request (Laravel - Empty $request after middleware)

$request->user()->role 錯誤 - 試圖獲取非對象的屬性 ($request->user()->role errror - trying to get property of non-object)

檢測到 Laravel 中間件但未執行 (Laravel middleware detected but not executed)

將 Auth 中間件應用於所有 Laravel 路由 (Apply Auth Middleware to All Laravel Routes)

路由組內的功能 [laravel-passport] (Function inside route group [laravel-passport])

當我嘗試訪問主頁時,Laravel 不會重定向到登錄頁面 (Laravel does not redirect to login page when I try to access to home page)

控制器沒有來自中間件的更改請求 (Controller doesnt have the alter request from the middleware)

訂閱者中間件路由允許公眾查看所有受限頁面 (Subscriber middleware route allowing public to view all restricted pages)







留言討論