2014-09-29 79 views
0

在我的應用我有訪問管理dashoboard只有授權用戶laravel 4權威性的路線管理儀表板

在routes.php文件我有

<?php 



Route::get('/', '[email protected]'); 

Route::get('detail/{id}', '[email protected]'); 

Route::get('add', '[email protected]'); 

Route::post('create', '[email protected]'); 

Route::get('login', '[email protected]'); 

Route::get('logout', '[email protected]'); 

Route::resource('sessions', 'SessionController'); 

Route::group(array('before' => 'auth'), function() 
{ 
    Route::get('admin', '[email protected]'); 
    Route::get('admin/delete/{id}', '[email protected]'); 
    Route::get('admin/edit/{id}', '[email protected]'); 
    Route::get('admin/state/{id}', '[email protected]'); 
    Route::post('admin/update/{id}', '[email protected]'); 
}); 


Route::get('o_nas', '[email protected]'); 


View::composer('layouts.partials.categories', function($view) 
{ 
    $view->categories = Category::all(); 
}); 

但在此之前,如果我嘗試管理/編輯/ 2無登錄,該頁面是可訪問的。爲什麼之前「權威性」是不是在我的例子

在app

功能/ filters.php是

Route::filter('auth', function() 
{ 
    if (Auth::guest()) return Redirect::guest('login'); 
}); 
+0

你應該表現出你的'auth'過濾器。當您簡單地在瀏覽器中輸入網址'admin/edit/2'而不發送任何表單時,該頁面是否可訪問? – 2014-09-29 19:13:42

+0

我編輯帖子添加auth過濾器。是的,這個頁面是可以訪問的網址管理/編輯/ 2而不發送登錄表格 – mardon 2014-09-29 19:24:43

回答

0

我測試你的代碼在新項目,這裏沒有錯誤。唯一的可能是,您已經定義了auth過濾不止一次,例如,如果你定義了你的過濾器是這樣的:

Route::filter('auth', function() 
{ 

}); 

// any other actions 

Route::filter('auth', function() 
{ 
    if (Auth::guest()) return Redirect::guest('login'); 
}); 

比預期的過濾器將無法工作,因爲它似乎是第一個過濾器將工作。在其他情況一切正常 - 你可以創建與routes.php一個新的項目,您的過濾器和創建只是SessionController,你會看到http://localhost/testproject/admin/edit/2將您重定向到http://localhost/testproject/login

+0

也許問題是,AdminControllers是在控制器/管理員目錄 – mardon 2014-09-30 20:00:57

+0

@mardon也許我不這麼認爲。但是,以防萬一你可以編輯你的問題,並在它的內容到你的問題 – 2014-09-30 20:04:06