У меня проблема, когда я не могу вставить переменные в функцию Mail :: send () в laravel. Пожалуйста, смотрите следующий код:
$first_name = $request->input('first_name'),
$email = $request->input('email'),
//Create account
User::create([
'first_name' => $first_name,
'last_name' => $request->input('last_name'),
'email' => $email,
'password' => bcrypt($request->input('password')),
]);
//Send email to user
Mail::send('emails.test', ['fname' => $first_name], function($message)
{
$message->to($email)
->subject('Welcome!');
});
return redirect()
->route('home')
->with('info', 'Your account has been created and an authentication link has been sent to the email address that you provided. Please go to your email inbox and click on the link in order to complete the registration.');
По какой-то причине код нарушается, когда он попадает на отправку электронной почты, потому что я получаю сообщение об ошибке, и данные отправляются в базу данных. Почему переменная больше не доступна после?
Любая помощь будет принята с благодарностью. Спасибо
Замыкания также могут наследовать переменные из родительской области. Любые такие переменные должны быть переданы
use
языковая конструкция.
Источник: http://php.net/manual/en/functions.anonymous.php
Другими словами, $email
должно быть унаследовано так:
Mail::send('emails.test', ['fname' => $first_name], function($message) use ($email)
{
$message->to($email)
->subject('Welcome!');
});
Замечания: use ($email)
в первой строке.
Других решений пока нет …