Как передать коллекцию на почту laravel - PullRequest
1 голос
/ 03 октября 2019

Как я могу отправить коллекцию с возможностью отправки по почте и упорядочить в виде элементов, которые я создал в коллекции внутри объекта?

В моем контроллере я создаю заказ, подобный этому:

$order = Order::create([
            'products' => json_encode(new CartItemCollection($items)),
            'price' => $PartialPrice,
            //other stuff
        ]);

В своей функции покупки я отправляю электронное письмо следующим образом:

            $pro = $order->products;
            $data = [
                'extra_address' => $order->extra_address,
                'address' => $order->address,
            ];

            Mail::to($check_user->email)->send(new NewPurch($data, $pro));

В конфигурации моего электронного письма у меня есть это:

public $data;
public $pro;

public function __construct($data,$pro)
{
    $this->data = $data;
    $this->pro = $pro;
}


public function build()
{
    return $this->markdown('newpurch')->with(['data' => $this->data])->subject('Thank you');
}

И в представленииЯ получаю данные, но я не знаю, как получить к ним доступ

@component('mail::message')

Someone want this:

{{$pro}}

@endcomponent

Письмо выглядит так: enter image description here

Но я не могу…t доступен как объект $pro->id или как ключ $pro['id']

РЕДАКТИРОВАТЬ: Если я пытаюсь это сделать:

@component('mail::message')

Someone want this:

@foreach($pro->items as $item)
  {{ $item->id }}
@endforeach

@endcomponent

Получить эту ошибку:

Попытка получить свойство 'items' не-объекта (View: /app/resources/views/newpurch.blade.php)

И если я попробую это:

 @component('mail::message')

<?php
$deco = json_decode($pro,true);
?>
Someone want this:
  {{ $deco }}

@endcomponent

Получите эту ошибку:

htmlspecialchars () ожидает, что параметр 1 будет строкой, заданным массивом (View: /app/resources/views/newpurch.blade.php)

1 Ответ

2 голосов
/ 03 октября 2019

РЕДАКТИРОВАТЬ:

public $data;
public $pro;

public function __construct($data, $pro)
{
    $this->data = $data;
    $this->pro = json_decode($pro, true);
}


public function build()
{
    return $this->markdown('newpurch')->with(['data' => $this->data])->subject('Thank you');
}

И использовать foreach, поскольку мы теперь вернулись к коллекции вместо строки.

@foreach($pro->items as $item)
  {{ $item->id }}
@endforeach

...