我遇到了一个关于Laravel 8路由的问题。我找不到解决这个问题的办法。
例如,我在Laravel中有这样的路由格式:
$domain/password_reset?$email
其中,它将如下所示:
http://test-website.com/password_reset?test@gmail.com
我知道查询参数是?key=value
格式的。然而,在我的例子中,提供的路由格式是(客户端)所期望的。而不是传统的key=value方式。此外,还可以从电子邮件中单击url链接。其中电子邮件中的链接使用给定的确切路由格式(不是url编码的)。
在控制器中获取的示例请求查询如下所示:
如果你注意到了,这封电子邮件变成了一个关键字(这是意料之中的)。因为它是一个密钥,所以.
已被更改为_
。它变成了gmail_com
,而不是gmail.com
。
有没有更好的解决方案来从这种路由格式的url (不是url编码的)中获得确切的电子邮件地址?希望有人能帮我解决这个问题。非常感谢你的进阶!
发布于 2021-02-19 10:15:40
您应该获取请求查询并自己解析它:
[$path, $query] = explode('?',$request->fullUrl())
在上面的示例中,$query
应该包含URL上?
之后的所有内容。
或者,您也可以只获取已有数组的键:
$email = array_keys($request->all())[0]
https://stackoverflow.com/questions/66270706
复制相似问题