【发布时间】:2014-11-16 05:07:22
【问题描述】:
我知道这里有票,它们在谈论类似的场景,但我找不到任何可以满足我的情况的答案。
我正在尝试执行以下操作:
Route::group(
[
'prefix' => 'admin',
'namespace' => 'Admin'
],
function() {
Route::controller('/', 'LoginController');
Route::group(
[
'prefix' => '',
'before' => 'auth.admin'
],
function() {
Route::controller('page', 'PageController');
Route::controller('article', 'ArticleController');
}
);
}
);
当我调用 /admin 时,我得到了 LoginController 并且它是 getIndex() 视图,但是当我调用 /admin/page 时 - 我得到了:
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
Controller method not found.
我知道你可以嵌套 Route::group 调用,但它似乎没有很好地记录在任何地方如何实现它。据我了解,您必须为每个 Route::group 调用指定“前缀” - 在嵌套的调用中,我刚刚使用了空白字符串 '' - 因为它不需要任何额外的前缀,除了父前缀。嵌套组中对控制器的封装调用需要admin.auth 过滤器——这就是我想将它们包含在嵌套组中的原因——而不是分别为每个控制器指定过滤器。
知道需要做什么才能使这个场景有效吗?
另外 - 即使我更改代码以便它直接调用父组下的控制器,如下所示:
Route::group(
[
'prefix' => 'admin',
'namespace' => 'Admin'
],
function() {
Route::controller('/', 'LoginController');
Route::controller('page', 'PageController');
Route::controller('article', 'ArticleController');
}
);
当我调用 /admin/page 时,我似乎遇到了同样的错误 - PageController 看起来像这样:
命名空间管理员;
使用基本控制器; 使用视图;
class PageController extends BaseController {
public function getIndex() {
return View::make('Admin.page.index');
}
}
【问题讨论】: