Передача даних до закриття у Laravel 4


108

Я намагаюся використовувати клас пошти в Laravel 4, і я не в змозі передати змінні об'єкту $ m.

об’єкт $ team містить дані, які я красномовно схопив із БД.

Mail::send('emails.report', $data, function($m)
{
   $m->to($team->senior->email, $team->senior->first_name . ' '. $team->senior->last_name );
   $m->cc($team->junior->email, $team->junior->first_name . ' '. $team->junior->last_name );
   $m->subject('Monthly Report');
   $m->from('info@website.com', 'Sender');
});

Чомусь я отримую помилку, коли об’єкт $ team недоступний. Я припускаю, що це має щось спільне із сферою застосування.

Якісь ідеї?


Точний сценарій для мене. Проблема Mail :: send приводить мене до пошуку про передання змінних до закритих даних, а потім до цього. Можливо, в цьому документі до документів Lairavel Mailer потрібно додати щось, що потрібно?
ШаунУК

Відповіді:


231

Якщо ви інстанціювали $teamзмінну за межами функції, вона не знаходиться в області функцій. Використовуйте використання ключового слова.

$team = Team::find($id);
Mail::send('emails.report', $data, function($m) use ($team)
{
   $m->to($team->senior->email, $team->senior->first_name . ' '. $team->senior->last_name );
   $m->cc($team->junior->email, $team->junior->first_name . ' '. $team->junior->last_name );
   $m->subject('Monthly Report');
   $m->from('info@website.com', 'Sender');
});

Примітка: Функція, що використовується, є закриттям PHP (анонімна функція). Це не є виключно Laravel.


3
Дякую, я не розумів, що ти можеш використовувати таке "використання". Я тільки хочу, щоб я міг цього навчитися раніше.
Дуглас.Сесар

2
Також працював над вирішенням моєї проблеми з Maill :: черга в Laravel 5
DavidHyogo

@DavidHyogo Я теж радий знайти цю посаду
atom2ueki
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.