2016-03-03 61 views
0

在工作恢复密码,一切工作正常,因为我加了验证,但我得到一个错误:“未定义的方法... \密码\ PasswordController ::验证”未定义的方法::验证在laravel

im调用函数是postEmail

我在做什么错?

我的代码:

<?php 

namespace Illuminate\Foundation\Auth; 

use Illuminate\Http\Request; 
use Illuminate\Mail\Message; 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\Password; 
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; 

trait ResetsPasswords 
{ 

    use RedirectsUsers; 

    /** 
    * Send a reset link to the given user. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function postEmail(Request $request) 
    { 
     $this->validate($request, ['email' => 'required|email']); 


     $response = Password::sendResetLink($request->only('email'), function (Message $message) { 
      $message->subject($this->getEmailSubject()); 
     }); 


     switch ($response) { 
      case Password::RESET_LINK_SENT: 
       return redirect() 
         ->back() 
         ->with('status', trans($response)); 

      case Password::INVALID_USER: 
       return redirect() 
         ->back() 
         ->withErrors(['email' => trans($response)]); 
     } 
    } 
} 
+0

将您的片段是有点在搞砸顶部,所以我不能看到;该控制器是否扩展了基本控制器“App \ Http \ Controllers \ Controller”?应该有一个'ValidatesRequests'特性。 –

回答

1

,除非您使用适当的性状的控制器没有一个validate方法。您不能在$this上使用validate()功能。如果您在ValidatesRequests特质在控制器上使用,这将只工作

所以刚过

class PasswordController{ 

您必须插入下面

use ValidateRequests; 
+0

你好,谢谢你的回答,我只是添加了使用ValidateRequests,添加了,但比给了我这个错误:特征'... \ Api \ Controllers \ Password \ ValidateRequests'找不到“ – Pedro