2016-11-24 4 views
2

В моем методе хранилища я использую $ request for 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 выбрал этот ответ и почему этот ответ получил больше оборотов, чем мой (3 против 1)? Мой ответ был первым, и ответов не было, по крайней мере, 5-10 минут. Также этот ответ не говорит ничего нового. Я вижу много этого в SO, и мне действительно интересно, почему это происходит. –

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 и @ Алексеем Мезенином? –

+0

Тот же ответ, но у этого есть весь ваш код, другой ответ - только часть его. Важной частью является 'use ($ request) {' –

+0

. Разница в ответе от меня заключается в том, что я не могу использовать метод get для получения запроса пользователя. i.e $ request-> get ('email'). Я могу использовать $ request-> email. –