无法在Laravel中的密码重置中获取完整的URL

时间:2016-03-24 11:53:32

标签: laravel laravel-5 laravel-5.1

我正在使用Laravel 5 ResetsPasswords特性来实现密码重置。在文件resources/views/emails/password.blade.php.中,我有以下代码。

<a href="{{ url('/password/reset/'.$token) }}" class="btn btn-primary">Click To Reset Password</a>

我正在使用队列将电子邮件发送给用户。当用户点击电子邮件中收到的链接时,我会得到以下内容:

http://localhost/password/reset/2aafe5381baa67f9d1fe2f476c0f1395b21e71fafe181b2980fb838fc9e0b2fc

我非常期待:

http://localhost/oap/public/password/reset/2aafe5381baa67f9d1fe2f476c0f1395b21e71fafe181b2980fb838fc9e0b2fc

为什么oap/public/不在网址中?我在其他视图中使用了url()函数,除了这个我使用队列发送消息的电子邮件视图外,它们工作得很好。当队列未用于发送消息时,链接就可以了。知道如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

使用URL::to。像,

<a href="{{ URL::to('/password/reset/'.$token) }}" class="btn btn-primary">Click To Reset Password</a>

答案 1 :(得分:1)

对于url助手,它将为您的输入生成完整路径

{{ url('/password/reset/'.$token) }}

将生成

http://localhost/password/reset/2aafe5381baa67f9d1fe2f476c0f1395b21e71fafe181b2980fb838fc9e0b2fc

{{ url('/oap/public/password/reset/'.$token) }}

将生成

http://localhost/oap/public/password/reset/2aafe5381baa67f9d1fe2f476c0f1395b21e71fafe181b2980fb838fc9e0b2fc

你也可以解决这个问题

Route::get('oap/public/password/reset/{confirmcode}', ['as' => 'resetpassword', 'HomeController@resetmethod']);

然后像这样使用

{{route('resetpassword', ['confirmcode' => $token])}}