发送网址?在拉拉韦尔

时间:2020-07-20 08:15:13

标签: php laravel special-characters

我正在通过GET方法传递注释,该方法包含特殊字符,包括?。我在路由中使用以下代码。

Route::get('CustRequest/{id}/{comment}', 'ApprovalController@CustomerRequest')->where('comment', '(.*)');

除了问号(?)以外,它还适用于其他特殊字符。

1 个答案:

答案 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}}数据在第一个问号之后。

另一个参考:What is a question mark in URL