首页 > 解决方案 > 如何在laravel中使用url传递`?`?

问题描述

我正在通过该GET方法传递评论,其中包含特殊字符,包括?. 我在路线中使用以下代码。

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

它适用于除 . 之外的其他特殊字符?

标签: phplaravelspecial-characters

解决方案


您应该?将 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 中的问号


推荐阅读