在 Laravel 5.0 的 RouteServiceProvider 中使用 \App::before()

Using \App::before() in RouteServiceProvider in Laravel 5.0

正在从 Laravel 4.2 迁移到 Laravel 5.0。我将 \App::before(function($request) 从我的 L4.2 filters.php 移动到 L5.0 的 RouteServiceProvider.php 的 boot() 方法,但我得到了

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
        });
    }

尝试Middleware。在您的情况下,您可以使用 artisan 命令创建一个新的中间件。使用以下命令寻求帮助:

php artisan help make:middleware

然后 register 你的中间件在 App\Http\Kernel.php

终于用Route Group Middleware or Controller Middleware保护了