2017-04-12 53 views
0

爲什麼在Laravel 5.4中得到「Undefined variable:emails」,但相同的代碼在Laravel 5.2中工作正常?以下是一段代碼片斷。不要認爲這很重要,但我使用PHP 7.1.3。在Laravel 5.4中獲取「未定義的變量:電子郵件」

public function send(Request $request) { 
    $emails = ""; 

    try { 
     $emails = [$request->input('to'), "[email protected]"]; 

     Mail::send('email.contact', ['request' => $request], function($message) use ($request) { 
      $message->from($request->input('email'), $request->input('email')); 
      $message->to($emails[0], $emails[0]) 
       ->cc($emails[1], $emails[1]) 
       ->subject("Contact Us"); 
     }); 

     $response = array (
      'success' => true, 
      'message' => 'Message sent.', 
      $request 
     ); 
    } 
    catch(Exception $e) { 
     $response = array (
      'success' => false, 
      'message' => $e->getMessage(), 
      $request 
     ); 
    } 
    // return Response::json($response); 
    return $response; 
} 
+0

匿名函數不知道'$ emails'變量。 –

回答

2

問題就在這裏:

use ($request) { 

使用$emails您有匿名函數裏面路過這裏像:

use ($request, $emails) { 

現在你可以使用它。

Anonymous function reference

+0

當然,感謝現場@Mayank Pandeyz。你可能只想從'use($ request,emails){'''use($ request,$ emails){' –

1

只需簡單地使用$emails變量的匿名函數與$request變量一起。

完整的代碼給它一個嘗試。

public function send(Request $request) { 
    $emails = ""; 

    try { 
     $emails = [$request->input('to'), "[email protected]"]; 

     Mail::send('email.contact', ['request' => $request], function($message) use ($request, $emails) { 
                  # Here add $emails variable in use list. 
      $message->from($request->input('email'), $request->input('email')); 
      $message->to($emails[0], $emails[0]) 
       ->cc($emails[1], $emails[1]) 
       ->subject("Contact Us"); 
     }); 

     $response = array (
      'success' => true, 
      'message' => 'Message sent.', 
      $request 
     ); 
    } 
    catch(Exception $e) { 
     $response = array (
      'success' => false, 
      'message' => $e->getMessage(), 
      $request 
     ); 
    } 
    // return Response::json($response); 
    return $response; 
} 

希望這會有所幫助。

+0

大聲笑是史詩般的失敗在我身邊,感謝您發現這個TipuZaynSultan。 –

相關問題