2016-11-24 105 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。 –