我的应用程序中有一个管理部分工作正常,但是现在我想关闭它,所以只有管理员可以访问。基本上,如果非管理员试图访问管理页面,我想重定向到admin/login
。
这是我的管理路线(有效):
Route::controller('admin', 'AdminController');
我尝试在admin
控制器路由上添加以下过滤器,并且我还注释掉了local
数组元素,因此环境设置为生产,但它无法正常工作。
routes.php文件
Route::filter('isAdmin', function()
{
if ( ! Session::has('admin') ) {
return Redirect::to('admin/login');
}
});
Route::get('admin', array('before' => 'isAdmin', function()
{
echo 'You are over 200 years old!';
}));
Route::controller('admin', 'AdminController');
所以,如果现在我去mysite / admin,即使session admin
不存在,我仍然可以访问管理信息中心。
答案 0 :(得分:0)
这样的东西应该有用,这是未经测试的
<强> Filters.php 强>
Route::filter('isAdmin', function()
{
if ( ! Session::has('admin'))
{
return Redirect::to('admin/login');
}
});
<强> routes.php文件强>
Route::group(['before' => 'isAdmin'], function()
{
Route::get('admin', 'AdminController@index');
});
<强> AdminController.php 强>
<?php
class AdminController
{
public function index()
{
echo 'they\'re an admin';
}
}