У меня есть ServiceOrderCreated.php уведомление и я хочу использовать ShouldQueue, но в нем хранится уведомление, кроме случаев, когда я не использую ShouldQueue.
Это данные, отправленные в ServiceOrderCreated Class:
//notification
class ServiceOrderCreated extends Notification implements ShouldQueue
{
use Queueable;
protected $serviceOrder;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct(ServiceOrder $serviceOrder)
{
$this->serviceOrder = $serviceOrder;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail', 'database'];
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return json
*/
public function toDatabase($notifiable)
{
//dd($this->serviceOrder);
return [
$this->serviceOrder
];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
$message = new MailMessage;
$message->subject('Sportservis-Hostivice: Nová zákazka č. '.$this->serviceOrder->id);
foreach ($this->serviceOrder->serviceOrderItem as $item) {
$message->line('<li>'.$item->customerOrderAsset->name.' - '.$item->serviceType->name.' - '.$item->price.'</li>');
}
return $message;
}
Проблема в том, что когда я удаляю "Implements ShouldQueue", он сохраняет всю коллекцию ($newServiceOrder
) в таблице уведомлений (столбец [data]). Когда «внедряет ShouldQueue», в таблице уведомлений сохраняется только голая модель без связей.
Есть идеи? Я что-то пропустил?
UPDATE
Это коллекция, которая передается из ServiceOrderController.php в уведомление.
$newServiceOrder = ServiceOrder::with(['serviceOrderItem', 'serviceOrderItem.serviceType', 'serviceOrderItem.customerOrderAsset', 'customer'])->find($serviceOrder->id)
$newServiceOrder->customer->notify(new ServiceOrderCreated($newServiceOrder));
ОБНОВЛЕНИЕ 2:
Это то, что хранится в таблице уведомлений, когда я не использую ShouldQueue :
https://pastebin.com/hXF03tEa
И это то, что сохраняется, когда я использую ShouldQueue :
https://pastebin.com/Vb6hFZkH