对于我正在开发的 CMS 的一部分,我遇到了一个恼人的路线问题。我得到了所有部分的路线,“产品”,例如:
Route::get('admin/products', array('as' => 'admin/products', 'uses'=> 'admin.products@index'));
Route::get('admin/products/create', array('as' => 'admin/products/create', 'uses'=> 'admin.products@create'));
Route::get('admin/products/edit/(:num)', array('as' => 'admin/products/edit', 'uses'=> 'admin.products@edit'));
Route::get('admin/products/delete/(:num)', array('as' => 'admin/products/delete', 'uses'=> 'admin.products@delete'));
.. 以及相关文件,如产品控制器、产品模型和视图。
在我决定创建一个新部分“用户”之前,一切都做得很好。我使用与“产品”相同的方法,创建路线和其他文件。事实上,我只是复制和粘贴文件,在需要时进行更改——非常简单。通过访问“admin/users”和“admin/users/create”,它可以按预期工作。但我无法访问“/users/edit/1”和“/users/delete/1”。我以为是路由问题,但是当我测试路由文件时,甚至在到达路由之前就得到了 404。这是一个例子:
Route::get('admin/users/edit/(:num)', function()
{
return "Holy Hell.";
});
“Holy Hell”从未印在屏幕上。
这是“用户”的配置:
Route::get('admin/users', array('as' => 'admin/users', 'uses'=> 'admin.users@index'));
Route::get('admin/users/edit/(:num)', array('as' => 'admin/users/edit/', 'uses'=> 'admin.users@edit'));
Route::get('admin/users/create', array('as' => 'admin/users/create', 'uses'=> 'admin.users@create'));
Route::get('admin/users/delete/(:num)', array('as' => 'admin/users/delete', 'uses'=> 'admin.users@delete'));
我注意到/检查的事情:
- 用户列表所在的索引视图有一个“URL::to_route('admin/users/edit')”函数。我在屏幕上没有错误,所以 Laravel 知道路由 'admin/users/edit' 设置正确。
- 我知道这不是一般问题,因为其他 CMS 部分的“编辑”和“删除”方法没有问题。
- 这些方法的视图在那里。所以这不是“找不到文件”的问题。
我想知道我是否在这里遗漏了一些非常明显的东西。有任何想法吗?如果没有,有人能告诉我如何调试吗?
非常感谢。