Laravel Mail очереди с Iron.io
Я смог заставить мою подписку push-очереди Iron.io работать отлично, но по какой-то причине не с почтовыми очередями. В приведенном ниже коде я помещаю работу в очередь с адресом электронной почты и именем пользователя в $data
массив. По неизвестным мне причинам адрес электронной почты и имя пользователя не передаются в функцию Mail. Работа просто сидит там, не удается отправить.
FooController.php
<?php
$data = array(
'email_address' => Input::get('email'),
'username' => Input::get('username'),
);
Queue::push('SendEmail@reserve', $data);
routes.php
<?php
// iron.io push queue path
Route::post('queue/push', function()
{
return Queue::marshal();
});
class SendEmail
{
public function reserve($job, $data)
{
Mail::send('emails.reserve', $data, function($message)
{
$message->to($data['email_address'], $data['username'])->subject($data['username'] . ', welcome to RockedIn!');
});
$job->delete();
}
}
?>
1 ответ
Вам нужно пройти $data
до закрытия.
public function reserve($job, $data)
{
Mail::send('emails.reserve', $data, function($message) use ($data)
{
$message->to($data['email_address'], $data['username'])->subject($data['username'] . ', welcome to RockedIn!');
});
$job->delete();
}