子文件夹中的控制器,在laravel-4.1中具有命名空间

时间:2014-03-19 13:32:06

标签: laravel laravel-4

我有以下代码:

Route::group(array('namespace' => 'admin'), function() {

    Route::group(array('prefix' => 'admin'), function() {

            Route::get('group', array('as' => 'adminGroup', 'uses' => 'GroupController@index'));

            Route::get('group/index', array('as'   => 'adminGroupIndex',
                    'uses' => 'GroupController@index'));
    });
});

和控制器

namespace admin;

class GroupController extends \BaseController {

    protected $layout = 'dashboard';

    public function index()
    {
            $this->layout->content = \View::make('admin/group/index');
    }

}

如果我将网址指向:

http://localhost/laravel/public/admin/group/index

完美无缺,但当我指出:

http://localhost/laravel/public/admin/group

不起作用。它只是重定向到:

http://localhost/laravel/public/user/login

但是当我不使用子文件夹时,一切都很完美!

编辑:已解决

我已经开始安装laravel管理员然后停止了,因为没有安装认证系统。所以我安装了Sentry2并正在配置管理组。在分析了一些Laravel管理员设置之后,我意识到它正在使用URI' admin'并且还重定向到“用户/登录”#39;如果我没有通过身份验证。

现在一切都很完美!

1 个答案:

答案 0 :(得分:1)

你可能有另一条路线用" auth"这是抓住/admin/group网址并将其发送到login

我刚刚在这里复制了你的代码,它对我来说很好。为了简单起见,我刚用这段代码替换了routes.php文件:

<?php

namespace admin;

class GroupController extends \Controller {

    protected $layout = 'dashboard';

    public function index()
    {
            return 'index!';
    }

}

\Route::group(array('namespace' => 'admin'), function() {

    \Route::group(array('prefix' => 'admin'), function() {

            \Route::get('group', array('as' => 'adminGroup', 'uses' => 'GroupController@index'));

            \Route::get('group/index', array('as'   => 'adminGroupIndex',
                    'uses' => 'GroupController@index'));
    });
});

两者

http://development.consultoriodigital.net/admin/group

http://development.consultoriodigital.net/admin/group/index

使用

显示页面时效果很好
index!