如何在 laravel 中使用 url 传递 `?`?
How to pass `?` with url in laravel?
我正在通过 GET
方法传递评论,其中包含特殊字符,包括 ?
。我在路线中使用以下代码。
Route::get('CustRequest/{id}/{comment}', 'ApprovalController@CustomerRequest')->where('comment', '(.*)');
它适用于除 ?
以外的其他特殊字符。
您应该将 ?
从 URL 更改为 %3F
,即 URL 编码为问号 (?)。
问号是 URI generic syntax 的一部分,它由五个部分组成:
URI = scheme:[//authority]path[?query][#fragment]
问号是分隔路径和查询字符串的通用语法,您无法更改该语法。因此,必须将 ?
从 URL 更改为 %3F
。
路径中的长文本不是最佳做法,您应该将路径中的注释更改为查询字符串,例如 domain/custrequest/id/?comment=blabla+http://dom.main/?ex=sss
并从控制器中获取它作为 request()->comment
你可以得到?
第一个问号后的数据。
另一个参考:
我正在通过 GET
方法传递评论,其中包含特殊字符,包括 ?
。我在路线中使用以下代码。
Route::get('CustRequest/{id}/{comment}', 'ApprovalController@CustomerRequest')->where('comment', '(.*)');
它适用于除 ?
以外的其他特殊字符。
您应该将 ?
从 URL 更改为 %3F
,即 URL 编码为问号 (?)。
问号是 URI generic syntax 的一部分,它由五个部分组成:
URI = scheme:[//authority]path[?query][#fragment]
问号是分隔路径和查询字符串的通用语法,您无法更改该语法。因此,必须将 ?
从 URL 更改为 %3F
。
路径中的长文本不是最佳做法,您应该将路径中的注释更改为查询字符串,例如 domain/custrequest/id/?comment=blabla+http://dom.main/?ex=sss
并从控制器中获取它作为 request()->comment
你可以得到?
第一个问号后的数据。
另一个参考: