Php Laravel 5高级路由
各位。我无法将2个URL链接到2个不同的控制器:( 当你要访问url时Php Laravel 5高级路由,php,laravel,laravel-5,routing,routes,Php,Laravel,Laravel 5,Routing,Routes,各位。我无法将2个URL链接到2个不同的控制器:( 当你要访问url时 /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}]
/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]+');
将第二个放在第一个之前:
Route::get ('/{path?}/{alias}-{record_id}.html', ['uses' => 'PageItemController@show', 'as' => 'item']);
Route::get ('/{path}-{page_id}', ['uses' => 'PageCategoryController@show', 'as' => 'category']);
这与
不能让可选参数后跟必需参数
然而,也许这个变通方法对你有用
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']);
@若
PageCategoryController@show
仍在执行,请尝试使用php artisan route:clear
@VolodymyrAndryeyev:Laravel routing清除缓存,如果选项param{path?}
对两个url都为true。你需要确定每一个identification@AlexeyMezenin:正如你所建议的,它总是走第一条路now@VolodymyrAndryeyev我已经对此进行了测试,除了添加第三条路由和修改第二条路由之外,我找不到任何方法使其工作,就像fab在这个答案中所显示的那样。这个问题非常令人困惑…@VolodymyrAndryeyev:Laravel路由被选项param{path?}
弄糊涂,如果两个url都为true。你需要确定每个身份
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']);