php - 如何在laravel中使用url传递`?`?
问题描述
我正在通过该GET
方法传递评论,其中包含特殊字符,包括?
. 我在路线中使用以下代码。
Route::get('CustRequest/{id}/{comment}', 'ApprovalController@CustomerRequest')->where('comment', '(.*)');
它适用于除 . 之外的其他特殊字符?
。
解决方案
您应该?
将 URL更改%3F
为对问号 (?) 进行 URL 编码的 URL。
问号是URI 通用语法的一部分,它由五个组件的分层序列组成:
URI = scheme:[//authority]path[?query][#fragment]
问号是分隔路径和查询字符串的通用语法,您不能更改该语法。因此,必须?
将 URL更改%3F
为。
路径中的长文本不是最佳实践,您应该将路径中的注释更改为查询字符串,一个示例domain/custrequest/id/?comment=blabla+http://dom.main/?ex=sss
并从控制器获取它,因为request()->comment
您可以?
在第一个问号之后获取数据。
另一个参考:什么是 URL 中的问号
推荐阅读
- file-upload - 将 Textarea 内容上传为文件
- python - 使用 pandas 将一个数据框与一个列表连接起来
- html - ngx-sharebuttons 中是否有 .css 版本的主题用于社交分享?
- json - JSON中的意外字符串在位置
通过邮递员寄送尸体 - android - “反应原生链接反应原生声音”不起作用
- javascript - 如何制作一个函数,在javascript中按降序排序并返回数组中重复次数最多的值?
- php - 为我的 CMS 解密或加密 rijndael 哈希时出现问题,这是 php 中的源代码
- reactjs - React 代理,服务器响应状态为 404 (Not Found)
- gremlin - 海王星小精灵中的排序(排序)非常慢
- r - 未生成图例或生成错误地分配给数据