Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5高级路由_Php_Laravel_Laravel 5_Routing_Routes - Fatal编程技术网

Php Laravel 5高级路由

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}]

各位。我无法将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}]*');
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']);