Php Laravel过滤器不工作
首先,我确信这些过滤器最初是工作的,我没有注意到它们不是 filters.php中的我的过滤器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(
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,最后出现逻辑错误。哪个过滤器不工作?他们两个?我看不到您在任何地方使用合作关系
过滤器,只使用了公司
过滤器。当我将代码复制并粘贴到问题上方时,我错过了过滤器的第一行。是的,他们两个都不在你身边工作,我只是好久没看到了!非常感谢,很乐意帮忙。有时候用第二双眼睛总是比较容易。