Я думаю, что с вашим кодом столько проблем.
Во-первых, $queue
- это findOrFail()
, который возвращает данные одного объекта (не массив или коллекцию, которые можно использовать для foreach.) Я думаю, вам нужно изменить на get()
Также $customers
и $guests
являются коллекцией, поэтому вы не можете использовать метод find()
.
Тогда вы не определили $quee
в @foreach, поэтому он даст результат ошибки.
Я думаю, что этот код вернется, как вы ожидали, если вы исправите указанные выше проблемы:
@foreach($queue as $quee)
{{ \App\Customer::find($quee->user_id)->name ?? \App\Guest::find($quee->guest_id)->name ?? "no name" }}
@endforeach
Но лучший подход - использовать отношение из вашего модель очереди:
public function customer()
{
return $this->belongsTo(Customer::class);
}
public function guest()
{
return $this->belongsTo(Guest::class);
}
public function getNameAttribute()
{
return $this->customer?$this->customer->name:($this->guest->name??"no name");
}
и в виде лезвия
@foreach($queue as $quee)
{{ $quee->name }}
@endforeach