2017-04-05 125 views
0

与laravel 5.4密码重置问题 - 发送电子邮件问题与laravel 5.4密码重置 - 发送电子邮件

的研究颇有几个小时后,我在一个不知如何解决这个问题相当标准实现laravel 5.4。我添加了一个多重身份验证系统,但我不相信这会对正在执行的代码产生影响。我正在运行邮件路由发送电子邮件......但之后,我迷失在追踪代码。在下面,请查找已生成的错误以及其他相关代码。我不确定错误是否在用户模型中,但肯定可以。谢谢你的帮助!!

BadMethodCallException in Builder.php line 2443:Call to undefined method Illuminate\Database\Query\Builder::notify() 
1. in Builder.php line 2443 
2. at Builder->__call('notify', array(object(ResetPassword))) in Builder.php line 1245 
3. at Builder->__call('notify', array(object(ResetPassword))) in Model.php line 1329 
4. at Model->__call('notify', array(object(ResetPassword))) in CanResetPassword.php line 27 
5. at User->sendPasswordResetNotification('c85443ddc950e30338975234e3ffcd10409efc8c43741e368b3f066398734fd5') in PasswordBroker.php line 70 
6. at PasswordBroker->sendResetLink(array('email' => [email protected]')) in SendsPasswordResetEmails.php line 33 
7. at ForgotPasswordController->sendResetLinkEmail(object(Request)) 
8. at call_user_func_array(array(object(ForgotPasswordController), 'sendResetLinkEmail'), array('request' => object(Request))) in Controller.php line 55 
9. at Controller->callAction('sendResetLinkEmail', array('request' => object(Request))) in ControllerDispatcher.php line 44 
10. at ControllerDispatcher->dispatch(object(Route), object(ForgotPasswordController), 'sendResetLinkEmail') in Route.php line 203 
11. at Route->runController() in Route.php line 160 
12. at Route->run() in Router.php line 559 

namespace App\Http\Controllers\Auth; 

use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\SendsPasswordResetEmails; 
use App\User; 

class ForgotPasswordController extends Controller 
{ 
    use SendsPasswordResetEmails; 
    public function __construct() {  $this->middleware('guest'); } 
} 

<?php 

namespace App; 

use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\User as Authenticatable; 
use Illuminate\Contracts\Auth\CanResetPassword; // DOES THIS NEED TO BE REFERENCED SOMEPLACE ELSE? 

class User extends Authenticatable 
{ 
    use Notifiable; 

回答

0

我能回答我的问题。那么下面的链接不会产生相同的错误,结果是一样的。我创建了另一个控制器,并调用忘记密码控制器中调用的相同过程,并且一切都无缝工作。

Laravel 5.4 Password Reset

use App\user; 
use Illuminate\Foundation\Auth\SendsPasswordResetEmails; 

class guestController extends Controller 
{ 

    public function __construct() {  $this->middleware('guest'); } 

    use SendsPasswordResetEmails; 

    public function sendPasswordEmail(request $request) 
    { 
     $a=user::where('email',Request('email'))->first(); 
     if(count($a)>0){ 
      $this->sendResetLinkEmail($request); 
      return redirect('password/emailThankyou'); 
     } else { 
      return redirect()->back(); 
     } 
    }