Laravel基本控制器方法调用过滤器

时间:2016-05-11 15:24:13

标签: php laravel

A使用Laravel 3时遇到问题,我需要使用这个laravel版本,因为这是我公司的laravel的认证版本。

所以,我想在base_controller中实现一个受保护的方法,以便在我的所有控制器中使用这个方法。

然后我实现了以下代码:

    Laravel\Routing\Filter_Collection Object ( 
[filters] => Array ( [0] => profileValidate ) [parameters] => [only] => Array ( ) 
[except] => Array ( ) [methods] => Array ( ) )

在我的控制器中,我调用此方法来验证记录的用户权限,然后我需要在权限为false时,基本控制器调用过滤器profileValidate,该过滤器会将用户重定向到某个路径。

这种我实现日志结果的方式是:

Configuration Properties

在我的过滤器内部,我有一个重定向到一些路线,但没有工作,并没有显示任何错误!

在我的实现开始时,我尝试将用户重定向到基本控制器内的某个页面,但是不起作用,因为我需要在我的父控制器中返回工作,那么这是一个问题,因为必须在我的方法实现开始时进行验证,并且返回必须在方法的最后。

你可以帮帮我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以直接在传递参数的路由上使用过滤器进行过滤,设置一个或多个角色可以访问该部分,如下所示:

Route::group(array('before' => 'verifyLoggedUser:admin,action'), function()
{
    Route::get('panel', 'someController@action');    
    Route::get('dashboard','someController@otherAction');
});

过滤器可以通过这种方式获取这些参数:

Route::filter('filter', function($route, $request, $module, $action)
{
    $result = false;
    //logical to validate user permissions
    if( !$result )
        return $this->filter('before', 'profileValidate');
    else
        return $result;
});