【问题标题】:how to migrate and transform laravel 4 filters to laravel 5?如何将 laravel 4 过滤器迁移和转换为 laravel 5?
【发布时间】:2017-06-22 10:24:43
【问题描述】:

我想从 laravel 4 迁移到 laravel 5,看来 laravel 5 中的过滤器概念已经改变了。

我在 app/filters.php 文件中有下面的过滤器(还有 auth、guest、csrf 过滤器):

Route::filter('date_validation', function ($route, $request) {
    $parameters = $route->parameters();
    if(array_key_exists('date', $parameters)) {
        $date = $parameters["date"];            

        if(strtotime($date) > time() || strtotime($date) < strtotime('2014-01-01')) {
            return Redirect::to('/');
        }

    }

    if(array_key_exists('time', $parameters)) {
        $time = $parameters["time"];

        if($time > '23-59') {
            return Redirect::to('/den');
        }
    }

});

我已经使用这个过滤器在 routes.php 文件中定义了一些路由:

Route::group(array('before' => 'date_validation'), function() {
    // some routes.
});

但是现在,我看到我应该使用中间件。我想我应该在 App\Providers\RouteServiceProviders 类的引导方法中添加过滤器。但是怎么做?你能帮帮我吗?

【问题讨论】:

    标签: laravel laravel-5 laravel-4


    【解决方案1】:

    你应该看看Middleware

    创建您的中间件: php artisan make:middleware DateValidation

    将其添加到内核:

    // Within App\Http\Kernel Class...
    
    protected $routeMiddleware = [
        //...
        'date_validation' => \App\Http\Middleware\DateValidation::class,
    ];
    

    在您的中间件中,您可以执行以下操作:

    public function handle($request, Closure $next)
     {
        $parameters = $request->route()->parameters();
        if(array_key_exists('date', $parameters)) {
           $date = $parameters["date"];            
    
            if(strtotime($date) > time() || strtotime($date) < strtotime('2014-01-01')) {
              return Redirect::to('/');
            }
    
        }
    
        if(array_key_exists('time', $parameters)) {
            $time = $parameters["time"];
    
            if($time > '23-59') {
                return Redirect::to('/den');
            }
        }
    
        return $next($request);
    }
    

    【讨论】:

      猜你喜欢
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2016-04-12
      • 2015-10-18
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多