Php Laravel-如何正确使用高级路由
我有一个分类和子分类的书单 每个类别都有许多子类别。在我的模型中,每个子类别都属于一个类别 现在,我希望有如下路线:Php Laravel-如何正确使用高级路由,php,laravel,laravel-4,Php,Laravel,Laravel 4,我有一个分类和子分类的书单 每个类别都有许多子类别。在我的模型中,每个子类别都属于一个类别 现在,我希望有如下路线: Route::resource('categories', 'ReligionsController'); Route::resource('category/{category?}', 'ReligionBranchController'); Route::get('category/{category?}/{subcategory?}', function() {
Route::resource('categories', 'ReligionsController');
Route::resource('category/{category?}', 'ReligionBranchController');
Route::get('category/{category?}/{subcategory?}', function()
{
return 'Quitter never win';
});
example.org/category/fear/thriller
example.org/category/love/drama
example.org/category/love/science-fiction
书籍/{类别?}
及
书籍/{category?}/{subcategory?}
我的路线如下所示:
Route::resource('categories', 'ReligionsController');
Route::resource('category/{category?}', 'ReligionBranchController');
Route::get('category/{category?}/{subcategory?}', function()
{
return 'Quitter never win';
});
example.org/category/fear/thriller
example.org/category/love/drama
example.org/category/love/science-fiction
现在的问题是,我的第二条路线与我的宗教信仰控制器完美配合,但我的最后一条路线(第三条)根本不起作用,我得到了以下信息:
Route pattern "/categories/{category}/{{category}}" cannot reference variable name "category" more than once.
我将如何使用这样的动态路线:
Route::resource('categories', 'ReligionsController');
Route::resource('category/{category?}', 'ReligionBranchController');
Route::get('category/{category?}/{subcategory?}', function()
{
return 'Quitter never win';
});
example.org/category/fear/thriller
example.org/category/love/drama
example.org/category/love/science-fiction
希望有人能理解我的问题。您必须理解,Laravel试图以更快的速度解决路由问题,因此您最通用的路由必须是最后一个路由,也就是说,我建议您将路由顺序更改为:
Route::get('category/{category}/{subcategory}', function()
{
return 'Quitter never win';
});
Route::resource('category/{category?}', 'ReligionBranchController');
Route::resource('categories', 'ReligionsController');
还有,这条路线
Route::get('category/{category?}/{subcategory?}', function() ...
完全一样
Route::get('category/{category?}', function()
如果您的用户只传递一个参数,或者根本不传递任何参数,那么我还建议将其更改为:
Route::get('category/{category}/{subcategory}', function() ...
这样,如果有人给出类别和子类别,它将输入第一个,如果只是类别或没有类别,则输入第二个。您向我们显示的错误是第一条路线
路线模式/categories/
,而不是第三条路线,第三条路线以category
开始,而不是categories
。