Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.1-内置密码重置功能,不发送带有令牌的电子邮件_Php_Email_Laravel_Url_Forgot Password - Fatal编程技术网

Php Laravel 5.1-内置密码重置功能,不发送带有令牌的电子邮件

Php Laravel 5.1-内置密码重置功能,不发送带有令牌的电子邮件,php,email,laravel,url,forgot-password,Php,Email,Laravel,Url,Forgot Password,概述: url('password/reset', [$token]); //DID NOT WORK action('Auth\PasswordController@getEmail', ['token' => $token]); //DID NOT WORK route('password/email', ['token' => $token]); //DID NOT WORK url('password/reset/'.$token); //DID NOT WO

概述:

 url('password/reset', [$token]); //DID NOT WORK

 action('Auth\PasswordController@getEmail', ['token' => $token]);  //DID NOT WORK

 route('password/email', ['token' => $token]); //DID NOT WORK

 url('password/reset/'.$token); //DID NOT WORK
我正在使用Laravel 5.1中的内置系统创建密码重置功能,我完全按照说明进行操作

resources/views/emails/password.blade.php
中的视图接收一个变量
$token
,该变量包含密码重置令牌,以使用户与密码重置请求相匹配。在视图中,我有以下代码,用于创建用户设置新密码的页面的URL链接:

   Click here to reset your password: {{ url('password/reset/'.$token) }}
问题:

 url('password/reset', [$token]); //DID NOT WORK

 action('Auth\PasswordController@getEmail', ['token' => $token]);  //DID NOT WORK

 route('password/email', ['token' => $token]); //DID NOT WORK

 url('password/reset/'.$token); //DID NOT WORK
它根本不发送电子邮件。但我已经意识到,如果我删除最后一个尾随斜杠(见下文):

我收到类似
http://mywebsite.com/password/reset35df435dfgdfg...

结论:

 url('password/reset', [$token]); //DID NOT WORK

 action('Auth\PasswordController@getEmail', ['token' => $token]);  //DID NOT WORK

 route('password/email', ['token' => $token]); //DID NOT WORK

 url('password/reset/'.$token); //DID NOT WORK
只要
密码/reset/
$token
之间有一个尾随斜杠,电子邮件就不会发送。即使我手动键入URL

为什么
/
之前的
$token
会影响正在发送的电子邮件?有什么想法吗

尝试的解决方案:

 url('password/reset', [$token]); //DID NOT WORK

 action('Auth\PasswordController@getEmail', ['token' => $token]);  //DID NOT WORK

 route('password/email', ['token' => $token]); //DID NOT WORK

 url('password/reset/'.$token); //DID NOT WORK
像这样试试

url帮助函数第二个参数是要随url一起传递的参数数组。您可以像下面这样使用,而不是将参数附加到url的末尾

url('password/reset', [$token]);

我找到了解决办法!这是不常见的,但如果您添加一个后向斜杠,它将保留正斜杠,并且不会出现令牌问题

url('password/reset\/',[$token])


谢谢,祝你好运

我正在使用php邮件,我找到了一个解决方案,这个问题是不寻常的,但我的方法奏效了!投票支持你!:)谢谢你的帮助@Alupothai是这个问题的根源,到底为应用程序定义了哪些路由?如果定义了
password/{whatever}
,但没有定义
password/reset/{token}
,那么laravel可能正在尝试并未能映射到已知的路由?对此并不确信。确实,常量字符串不能以反斜杠结尾,因为它会转义右引号。这将导致解析错误。但是正斜杠呢?这应该没有任何问题。