Laravel 5.6如何通过URL作为URL参数?

时间:2019-01-14 11:52:43

标签: javascript php laravel

请任何人都可以帮助我解决这个问题。

我的路线的网址如下:

http://localhost:8000/notifications/e343ec2f-9e3d-08df90e7030b/read/http://localhost:8000/profile

我的路线是:

Route::get('/notifications/{id}/read/{redirect_to}', 'NotiController@readAndRedirect');

这将抛出404。

我也尝试了以下方法:

Route::get('/notifications/{id}/read/{redirect_to}', 'NotiController@readAndRedirect')->where('redirect_to', 'some-regular-exp');

但是没有用。

有什么想法要实现吗?

关于, 贾西

3 个答案:

答案 0 :(得分:1)

在这里其他人的建议之外,也许考虑考虑代替

http://localhost:8000/notifications/e343ec2f-9e3d-08df90e7030b/read/http://localhost:8000/profile

要使路线看起来像这样:

http://localhost:8000/notifications/e343ec2f-9e3d-08df90e7030b/read/profile

然后在处理通知之后在代码中将http://localhost:8000/部分放在前面。通常,您不希望重定向到完全不同的主机(我会假设),并且它可能是安全漏洞(CSRF等)。

答案 1 :(得分:0)

看看urlencode

这是因为您的URL中不能包含特殊字符。

答案 2 :(得分:0)

您应始终urlencode个放在URL中的字符串。否则,诸如/?之类的字符可能会破坏您的网址。

echo 'http://localhost:8000/notifications/e343ec2f-9e3d-08df90e7030b/read/' . urlencode('http://localhost:8000/profile');