2016-01-02 5 views
2

У меня есть два поля почти в каждом table моего DB, это created_by и modified_by. Таким образом, сейчас у меня есть это в моем controller:Должно ли это быть промежуточным программным обеспечением?

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

Я думал, что я должен превратить это в middleware или что-то немного больше RESTful, но я не знаю, как я бы об этом. Он используется в 100% моих методов store прямо сейчас, но возможно, что по дороге у меня будет 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

Я соответствующим образом обновил ответ. –

Смежные вопросы

 Смежные вопросы