Laravel: BaseController 构造中使用的 beforeFilter 在子类中不起作用

Laravel: beforeFilter used in BaseController construct doesn't work in subclasses

我阅读了 Laravel 的有关 controller filters 的文档。我希望将此功能正确应用到我的 BaseController,因此所有扩展它的控制器都可以自动 运行 beforeFilter。但是,需要排除其中两条路线。排除的路由名为 homelogout,但下面的代码不起作用:customFilter 被扩展 BaseController 的类忽略.我做错了什么?

routes.php:

Route::get('/',
    array(
        'before' => 'auth',
        'uses' => 'DefaultController@index',
        'as' => 'home'
        )
    );

Route::get('/logout',
    array(
        'before' => 'auth',
        'uses' => 'UserController@logout',
        'as' => 'logout'
        )
    );

Route::get('/profile',
    array(
        'before' => 'auth',
        'uses' => 'UserController@profile',
        'as' => 'profile'
        )
    );

/// And so on...

BaseController.php:

<?php

    class BaseController extends Controller {

        // beforeFilter to be inherited by subclasses
        public function __construct() {
            $this->beforeFilter('customFilter', array('except' => array('home', 'logout')));
        }

        // Rest of the code

    }

?>

以后(例如):

<?php

class UserController extends BaseController {

    // Code...

}

?>

你必须像这样在子 class 中构造父:

class UserController extends BaseController {

   public function __construct(){
     parent::__construct();
   }

}