在laravel中,我的请求参数是否太长了?

时间:2015-07-28 00:13:43

标签: php laravel

我是laravel的学习者。我尝试处理confirm_code。这用于发送给用户电子邮件。然后用户可以单击电子邮件以确认其信息。

网址类似于“localhost / laravel / public / reset / $ 2y $ 10 $ UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR / q”。

我的route.php有配置,如

Route::get('/reset/{token}', 'AuthController@showReset');

在我的AuthController中,showReset函数如下:

public function showReset($token)
{
    var_dump($token);die;
}

如果网址为“localhost / laravel / public / reset / 1234”,则会转储1234.但是,如果网址为“localhost / laravel / public / reset / $ 2y $ 10 $ UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR / q”,则会没有进入showReset函数。这是“管道未找到”的错误。

如果我使用“localhost / laravel / public / reset /”。 urlencode('$ 2y $ 10 $ UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR / q'),结果也一样。

这个获取请求是否太长?我不确定。但令牌必须是唯一的,重置后令牌无效。

我不知道如何在laravel中解决这个问题。请帮我。非常感谢你。

1 个答案:

答案 0 :(得分:0)

链接中的/

localhost/laravel/public/reset/
    $2y$10$UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR/q
                                                              ^ here

导致laravel将其路由到另一条路线,例如

 Route::get('reset/foo/bar','Controller@index');

您可以使用urlencode()来解决此问题。

$href = 'localhost/laravel/public/reset/'.urlencode('
$2y$10$UFEQ8HLCbqHhGsCVA445MetqaV5FOAb4eIPFqw0YCws8MpWvImR/q');