Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Всем привет.
Дума мало что общего с вопросом фреймворка, но все же. Есть функция getExpire() в моделе Task, user_id ид юзера из таблиц.
public static function getExpire()
{
$tasks = Task::where('task_status','=',0)->get();
foreach($tasks as $task) {
Task::getNotificationSend($task->user_id);
}
}
public static function getNotificationSend($userid)
{
$userdata = User::find($userid);
$dataArray = array(
'email' => $userdata->email,
'fullname' => $userdata->fullname,
);
Mail::send('emails.tasks.expire', $dataArray, function ($message) {
$message->to($userdata->email, $userdata->fullname)->subject('Срок задачи истек!');
});
}
в функции getExpire() передаю по циклу ид юзера на функцию getNotificationSend()
в функции getNotificationSend() получаю данные юзера через ид и передаю собщ.
Ошибка Undefined variable userdata. Пробовал через глобальную переменную, тоже ошибка.
Кроме ид юзера нужен передать другие данные задач дальше как обычно по собщ.
Как тут быть?
Не в сети
}%В PHP 5.3 при использовании внешних переменных в замыкании нужно добавлять **use**.
%%(php)
Mail::send('emails.tasks.expire', $dataArray, function ($message) use ($userdata) {
%%
Сделал так
Mail::send('emails.tasks.expire', $dataArray, function ($message) use ($userdata) {
$message->to($userdata->email, $userdata->fullname)->subject('Срок задачи истек!');
});
Ошибок нету. Папка OpenServer\userdata\tmp\email пусто
конфиг mail.php
return array(
'driver' => 'mail',
'host' => 'smtp.mailgun.org',
'port' => 587,
'from' => array('address' => 'test@mail.com', 'name' => 'Test'),
'encryption' => 'tls',
'username' => null,
'password' => null,
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
);
как теперь проверит? Сама отправка почты работает,проверял.
Не в сети
Так не понял где косяк. Саму функцию же он по циклу катает и передает.
Не в сети