【问题标题】:Should this be middleware?这应该是中间件吗?
【发布时间】:2016-01-02 23:49:32
【问题描述】:

我的DB 中几乎每个table 都有两个字段,它们是created_bymodified_by。所以,现在我的controller 中有这个:

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

我在想我应该把它变成middleware 或者更多一点的RESTful,但我不知道该怎么做。现在,我 100% 的 store 方法都在使用它,但有可能在未来我会有一个没有这两个字段的 table,这就是我感到困惑的地方。

【问题讨论】:

    标签: php laravel-5.1 middleware


    【解决方案1】:

    中间件的工作是处理请求,但是您需要在这里控制模型的创建和更新。所以在我看来,我会在模型事件中添加这些部分,并将它们从所有控制器中删除。 因此,一旦创建或更新模型,就会触发一个事件来更改这些参数/属性,就在保存模型之前。

    这可以根据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 替换为您的型号名称,并确保将其导入。

    【讨论】:

    • 这听起来正是我需要做的,这是我迄今为止提出的最有意义的事情。你有一些示例代码可以让我开始吗?
    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 2013-07-17
    • 2011-03-26
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多