2016-03-17 22 views
0

這是我的功能。爲什麼電子郵件驗證功能不能正確處理地址?

public function email_verify_send_mail() 
    { 
     $inputs = \Input::all(); 
     $rules = array(
      'email' => 'required|email' 
     ); 
     $validation = Validator::make($inputs, $rules); 

     if ($validation->fails()) { 
      $messages = $validation->errors(); 
      return View::make('email_verify')->with('errors', $messages); 
     } 
     else{ 
      $in=$inputs['email']; 
      //send mail to the user....... 
      Mail::send('email_view', ['key' => 'value'], function($message) 
      { 
       $message->to($inputs['email'])->subject('Welcome!'); 
      }); 
      return "okie"; 


     } 
    } 

這裏的時候,我打印$inputs['email']它清楚地打印的電子郵件地址。 但是當我添加到郵件發送::功能,它提供了一個錯誤未定義的變量:輸入。爲什麼它發生在此先感謝

回答

2

的可變投入是不是匿名的範圍內功能。請使用"use"聲明象下面這樣:

public function email_verify_send_mail() 
{ 
    $inputs = \Input::all(); 
    $rules = array(
     'email' => 'required|email' 
    ); 
    $validation = Validator::make($inputs, $rules); 

    if ($validation->fails()) { 
     $messages = $validation->errors(); 
     return View::make('email_verify')->with('errors', $messages); 
    } 
    else{ 
     $in=$inputs['email']; 
     //send mail to the user....... 
     Mail::send('email_view', ['key' => 'value'], function($message) use ($inputs) 
     { 
      $message->to($inputs['email'])->subject('Welcome!'); 
     }); 
     return "okie"; 


    } 
} 
1

試試這個....

Mail::send('email_view', ['key' => 'value'], function($message) 
      { 
       $message->to($inputs['email'])->subject('Welcome!'); 
      }); 

Mail::send('email_view', ['email' => $in], function($message) 
      { 
       $message->to($email)->subject('Welcome!'); 
      }); 

(或)

Mail::send('email_view', function($message) use($in) 
       { 
        $message->to($in)->subject('Welcome!'); 
       }); 

參見:https://laravel.com/docs/5.0/mail