大家。我无法将网址链接到2个不同的控制器:(
Route::group([
'namespace' => 'Page',
'as' => 'page.',
], function() use ($lang)
{
Route::get ('/{path}-{page_id}', ['uses' => 'PageCategoryController@show', 'as' => 'category']);
Route::get ('/{path?}/{alias}-{record_id}.html', ['uses' => 'PageItemController@show', 'as' => 'item']);
});
当你要去网址时
/test-3
/test-3.html
你有相同的结果,但为什么?
uri GET {path}-{page_id}
as frontend::page.category
请帮帮我:)
更新:
也许是因为这个,但我不确定......
Route::pattern('path', '[-_a-zA-Z0-9\p{L}]*');
Route::pattern('alias', '[-_a-zA-Z0-9\p{L}]*');
Route::pattern('record_id', '[0-9]+');
Route::pattern('page_id', '[0-9]+');
答案 0 :(得分:1)
将第二个放在第一个之前:
Route::get ('/{path?}/{alias}-{record_id}.html', ['uses' => 'PageItemController@show', 'as' => 'item']);
Route::get ('/{path}-{page_id}', ['uses' => 'PageCategoryController@show', 'as' => 'category']);
答案 1 :(得分:0)
这与Understand Laravel route with optional parameter
有关您不能有可选参数,后跟必需参数。
但是,这种解决方法可能对您有用
Route::get ('/{alias}-{record_id}.html', ['uses' => 'PageItemController@show', 'as' => 'item']);
Route::get ('/{path}/{alias}-{record_id}.html', ['uses' => 'PageItemController@show', 'as' => 'item']);
Route::get ('/{path}-{page_id}', ['uses' => 'PageCategoryController@show', 'as' => 'category']);