2016-01-02 41 views
2

我幾乎在我的DB的每個table有兩個字段,他們是created_bymodified_by。所以,現在我有這個在我的controller這應該是中間件嗎?

$request['created_by'] = Auth::user->id; 
$request['modified_by'] = Auth::user->id; 

我在想,我應該把它變成middleware或東西多一點RESTful,但我不知道我怎麼會去這一點。它現在被我的store方法中的100%所使用,但有可能我會有一個table,它沒有這兩個字段,這是我感到困惑的地方。

回答

2

中間件工作就是處理請求,但是您需要在這裏控制模型的創建和更新。所以在我看來,我會將這些部分添加到模型事件中,並從所有控制器中刪除它們。 因此,一旦模型創建或更新,就會在保存模型之前觸發事件來更改這些參數/屬性。

這可以很容易地爲每documentation來實現:

在你AppServiceProvider

<?php 

namespace App\Providers; 

use App\User; 
use Illuminate\Support\ServiceProvider; 

class AppServiceProvider extends ServiceProvider 
{ 
    /** 
    * Bootstrap any application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     User::creating(function ($user) { 
      if (! $user->isValid()) { 
       return false; 
      } 
     }); 
    } 

您可以用您的模型名稱替換User,並確保將其導入。

+0

這聽起來正是我需要做的事情,它使我迄今爲止所做的最有意義。你有一些示例代碼可以幫助我開始嗎? –

+0

我已經更新了相應的答案。 –