2017-04-13 15 views
0

私はlaravel 5.0アプリケーションでパスワード機能を忘れてしまいました。私は登録された電子メールを入力し、このフォームがjquery ajax投稿要求に作用する(postメソッド)をユーザに依頼しています。リクエストからメールを受け取った後、それが存在するかどうかをdbでチェックしています。もし私が新しいパスワードを更新しているならば、これはすべてこれでいいです。今私は、ユーザーに新しいパスワードで電子メールを送信しようとしている、それは動作していません。パスワードを更新するが、電子メール、私は$message->to('[email protected]');代わりの$message->to($email);を使用した場合、実際のメールが作動している
メールはlaxvel 5をajaxのポストリクエストから送信しません

public function forgot_pass(Request $request){ 

     $email = $request->input('femail'); 
     $data = ['email' => $email]; 

     $user = Myuser::where($data)->count(); 

     if($user == 0){ 
      return response()->json(['status' => 'Invalid']); 
     } 
     else{ 

      $user_details = Myuser::where($data)->get()->first(); 

      $new_pass = $this->generateRandomString(); 

      $md5_pass = md5("EEE".$new_pass); 

      $status = Myuser::where('email', $email) 
       ->update(['pass' => $md5_pass]); 

       if($status){ 

        $mail_data = ['name' => $user_details->name, 'new_pass' => $new_pass]; 

        Mail::send('emails.newpassword', $mail_data, function($message) 
        { 
         $message->from('[email protected]', 'Laravel'); 

         $message->to($email); 

        }); 

        return response()->json(['status' => 'Invalid']); 
       } 

     } 

    } 

の下に私のコントローラのコードをsending.Findされていません。以下は、私が得ているエラーです。
enter image description here

なぜか$emailというエラーが発生します。

+0

$emailを渡す必要があります。 –

+0

@Autista_z何が間違った方法ですか?私はuを取得しませんでした。 – prudhvi259

答えて

1

あなたは、あなたがルートにURLを呼び出すための間違った方法を持っている匿名関数

Mail::send('emails.newpassword', $mail_data, function($message) use ($email) { 
... 
}); 
+0

ありがとうございました。あなたは私の時間を救った。それは素晴らしい仕事をした。 – prudhvi259

関連する問題