php laravel用的多不,php-Laravel多个可选参数不起作用
在使用帶有2個可選參數的路線時,
Route::get('/abc-{abc_id?}/xyz-{xyz_id?}', function($abc_id=0, $xyz_id=0)
{
return "\n hello ... World";
});
要求
/abc-1/xyz-15 - Hello World
/abc-1/xyz - Hello World
但對于
/abc-/xyz-15 - 404
/abc/xyz-15 - 404
為什么第一個可選參數無法正常工作?是否有其他解決方案?
請注意,兩個參數都在url中,而不是作為get屬性
解決方法:
第一個可選參數之后的所有內容都必須是可選的.如果在可選參數之后需要路由的一部分,則該參數變為必需.
在您的情況下,由于路由的/ xyz-部分是必需的,并且位于第一個可選參數之后,因此該第一個可選參數成為必需.
一種選擇是將id前綴作為參數的一部分,并使用模式匹配來實施路由格式.然后,您需要從參數值中解析出實際的ID.
Route::get('/{abc_id?}/{xyz_id?}', function($abc_id = 0, $xyz_id = 0) {
$abc_id = substr($abc_id, 4) ?: 0;
$xyz_id = substr($xyz_id, 4) ?: 0;
return "\n hello ... World";
})->where([
'abc_id' => 'abc(-[^/]*)?',
'xyz_id' => 'xyz(-[^/]*)?'
]);
標簽:laravel-routing,laravel,laravel-5,php,routing
來源: https://codeday.me/bug/20191028/1951299.html
總結
以上是生活随笔為你收集整理的php laravel用的多不,php-Laravel多个可选参数不起作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海欢乐谷冬天去会不会很冷
- 下一篇: 摩尔庄园手游白萝卜鱼有什么用?