2015-09-26 36 views
1

從Laravel 4.2遷移到Laravel 5.0。我感動\App::before(function($request)從我L4.2 filters.php到L5.0的RouteServiceProvider.php的boot()方法,但我發現從中拋出在Laravel 5.0中使用 App :: before()在RouteServiceProvider中

FatalErrorException in Facade.php line 210: Call to undefined method Illuminate\Foundation\Application::before()

錯誤。我究竟做錯了什麼?

我還沒有發現任何說這不應該工作; an SO question/answer says that it worked for another guy,所以我不確定我的代碼在哪裏不一樣。我試過包括use Illuminate\Support\Facades\App;\App::before,無濟於事。

<?php namespace App\Providers; 

use Illuminate\Routing\Router; 
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 

use Illuminate\Support\Facades\Route; 
use Illuminate\Support\Facades\App; 

class RouteServiceProvider extends ServiceProvider { 

    protected $namespace = 'App\Http\Controllers'; 

    public function boot(Router $router) 
    { 

     App::before(function($request) 
     { 
      //My before code 
     }); 
    } 

回答

1

嘗試Middleware。在你的情況下,你可以使用artisan命令創建一個新的中間件。爲幫助使用下面的命令:

php artisan help make:middleware 

然後register您在應用中間件\ HTTP \ Kernel.php

最後使用Route Group MiddlewareController Middleware保護。

+0

太棒了,甚至有關於之前/之後的中間件文檔部分。 http://laravel.com/docs/master/middleware –