array_unique($collection, SORT_REGULAR);
__toString()
у класса DonateOperation
. Как-нибудь так:public function __toString(): string
{
$attrs = (array)$this;
unset($attrs['id']);
return json_encode($attrs);
}
array_unique
будет работать применительно к исходной коллекции объектов.$collection = [...]; //исходная коллекция объектов
$found = []; //коллекция найденных массивов для быстрой проверки
$unique = []; //результирующая коллекция
foreach ($collection as $item) {
//преобразуем объект в массив без поля "id"
$array = (array)$item;
unset($array['id']);
//ищем полученный массив в массиве $found
if (!in_array($array, $found)) {
$found[] = $array;
$unique[] = $item;
}
}
$data = [$name];
$response = $client->post($url, ['json' => $data]);
User::where('id', $this->user->id)->get()
- какое-то масло масляное. Переменная $this->user
уже содержит пользователя. Зачем его снова загружать из БД? Да ещё в виде коллекции. Invoice::where('id', $this->user->id)->get()
- у инвойсов ID совпадают с пользователями? Бред какой-то. Наверное, там должна быть колонка user_id
$pdf = PDF::loadView('pdf.invoice', ['user' => $this->user, 'invoice' => Invoice::where('user_id', $this->user->id)->first()]);
User ID: {{ $user->id }}<br>
Invoice {{ $invoice ? $invoice->id : 'n/a' }}