Php Laravel过滤器不工作

Php Laravel过滤器不工作,php,laravel-4,Php,Laravel 4,首先,我确信这些过滤器最初是工作的,我没有注意到它们不是 filters.php中的我的过滤器 Route::filter('partnership', function() { if (!Auth::check()) { return Redirect::to('login'); } elseif(Auth::check()) { $access = Auth::user()->access; if(

首先,我确信这些过滤器最初是工作的,我没有注意到它们不是

filters.php中的我的过滤器

Route::filter('partnership', function()
{
    if (!Auth::check())
    {
        return Redirect::to('login');
    }
    elseif(Auth::check())
    {
        $access = Auth::user()->access;
        if(!$access == 'partnership')
        {
            return Redirect::to('login');
        }
    }
});

Route::filter('company', function()
{
    if (!Auth::check())
    {
        return Redirect::to('login');
    }
    elseif(Auth::check())
    {
        $access = Auth::user()->access;
        if(!$access == 'company')
        {
            return Redirect::to('login');
        }
    }
});
这些用于查看用户是否具有正确的访问级别

在routes.php中,我的路由组如下所示

编辑:缺少第一个筛选器组的此部分

Route::group(array('before' => 'partnership'), function ()
{
//Dashboard access
    Route::get('partnership_dashboard', array('as' => 'partnership_dashboard', function()
    {
        $count = DB::table('devices')->count();
        if ($count > 25)
        {
            $overLicense = $count - 25;
            $licenseWarning = 'The client is over their license quota by '.$overLicense;
            return View::make('partnership.partnership-dashboard')
                ->withErrors($licenseWarning);
        }
        else
        {
            return View::make('partnership.partnership-dashboard');
        }
    }));

    // Route for register form action
    Route::post('register', array('uses' => 'UsersController@partnership_create'));
我的公司集团

Route::group(array('before' => 'company'), function ()
{
    //Dashboard access
    Route::get('dashboard', array('as' => 'dashboard', function()
    {
        // Get user data for dashboard drop down menu
        $users = DB::table('users')
            ->where('access', 'company')->get();
        $i = 0;
        foreach ($users as $user) {
            $full_name = $user->first_name." ".$user->last_name;
            $user_arr[$i] = array('name' => $full_name, 'user_id' => $user->id);
            $i++;
        }
        // Get device data for dashboard dropdown menu
        $devices = DB::table('devices')->get();
        $count = DB::table('devices')->count();
        if ($count > 25)
        {
            $overLicense = $count - 25;
            $licenseWarning = 'You are over your license quota by '.$overLicense; 
            return View::make('dashboard')
                ->with('users', $user_arr)
                ->with('devices', $devices)
                ->withErrors($licenseWarning);
        }
        else {
        return View::make('company.dashboard')
            ->with('users', $user_arr)
            ->with('devices', $devices);
        }
    }));
});
我已检查是否从数据库中获取了正确的数据。我只是有点困惑

提前谢谢

if(!$access == 'partnership')
我认为你在这一行(类似于公司过滤器)中的意思是这样的:

if($access != 'partnership')
从第一个角度来看,您可以拥有与partnership相同的访问级别,并且此语句将返回true:

$access == 'partnership'

抛出
对真值求反,因此结果为false,最后出现逻辑错误。

哪个过滤器不工作?他们两个?我看不到您在任何地方使用
合作关系
过滤器,只使用了
公司
过滤器。当我将代码复制并粘贴到问题上方时,我错过了过滤器的第一行。是的,他们两个都不在你身边工作,我只是好久没看到了!非常感谢,很乐意帮忙。有时候用第二双眼睛总是比较容易。