将Laravel从4.2升级到5.如何使过滤器工作?

时间:2015-07-14 01:45:39

标签: php laravel laravel-5

我的Laravel 4.2应用程序中的filters.php中有一个方法,如下所示:

    // Clean/self-updating URLs for property
    Route::filter('property-slug', function($route, $req)
    {
        $listing = $route->parameter('listing');

        if ($route->parameter('metainfo') != $listing->metainfo) {
            return Redirect::route('listing.full', [$listing->MLSNumber, $listing->metainfo]);
        }

    });

所有这一切都允许我输入mydomain.com/property/21938281(或一些MLS号码),然后重定向到带有地址slug的漂亮URL(例如mydomain.com/property/21938281-123-main-街

我现在在哪里放置新过滤器?我发现之前和之后都有中间件,但是我不确定如何使这个特定的工具上班,因为它并不适合在之前或之后。

1 个答案:

答案 0 :(得分:1)

创建中间件:

php artisan make:middleware AdminMiddleware

根据您的需要进行修改。

打开app/Http/Kernel.php,添加以下内容:

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'admin' => \App\Http\Middleware\AdminMiddleware::class
];

routes.php

中使用
Route::get('admin/accounts', ['middleware' => 'admin', function () {
    //
}]);

我几天前不得不从过滤器迁移到中间件,因为它们在5.1中已被弃用。