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