2016-11-24 107 views
2

在我的商店方法中,我使用請求$ request,但傳遞給Mail::send方法時顯示未定義變量請求的錯誤。

public function store(Request $request) 
    { 
     $user = new User(); 
     $user->add_user($request); 
     $confirmation_code = ['123456']; 
     Mail::send('users.add-user', $confirmation_code, function($message) { 
      $message->to($request->get('email'), $request->get('email')) 
       ->subject('Verify your email address'); 
     }); 
     return redirect('/users')->with('success', ['Thanks for signing up! Please check your email.']); ; 
    } 
+0

在做任何事情之前,在你的函數體內檢查$ request是否有一些值? –

回答

2

在郵件發送::關閉,您必須通過$request變量,就像這樣:

Mail::send('users.add-user', $confirmation_code, function($message) use ($request) { 
    $message->to($request->get('email'), $request->get('email')) 
     ->subject('Verify your email address'); 
}); 
+0

只是想知道爲什麼OP選擇了這個答案,爲什麼這個答案比我的更多upvotes(3對1)?我的回答是第一個,至少5-10分鐘沒有任何答案。這個答案也沒有告訴任何新東西。我看到很多這樣的事情發生,所以我很好奇爲什麼會發生這種情況。 –

0

您應該添加use()變量傳遞到封閉範圍:

Mail::send('users.add-user', $confirmation_code, function($message) use($request) { 
1

請嘗試此代碼..

public function store(Request $request) 
{ 
    $user = new User(); 
    $user->add_user($request); 
    $confirmation_code = ['123456']; 
    Mail::send('users.add-user', $confirmation_code, function($message) use($request) { 
     $message->to($request->email, $request->email) 
       ->subject('Verify your email address'); 
    }); 
    return redirect('/users')->with('success', ['Thanks for signing up! Please check your email.']); ; 
} 
+2

你能告訴我們你的答案和@ user1191749和@ Alexey Mezenin給出的答案有什麼區別? –

+0

同樣的答案,但這有你的所有代碼,另一個答案只是它的一部分。重要的部分是'use($ request){' –

+0

我的答案與我們兩者的區別在於我無法使用get方法來獲取用戶請求。即$ request-> get('email')。我可以使用$ request-> email。 –