У меня есть это отношение, определенное в одной из моих моделей.Это самый простой возможный случай.
use \App\Models\Related;
public function entities()
{
return $this
->belongsToMany(Entity::class, 'entity_related', 'related_id', 'entity_id');
}
Теперь я хочу создать отношение, которое получает только одну модель из таблицы.
Текущее решение
Я только что определил то же отношение, но с ->take(1)
.Грубый, но это работает.Спад этого решения заключается в том, что мне нужно сделать цикл foreach
, чтобы получить желаемую единственную модель.
use \App\Models\Entity;
public function firstOfEntities()
{
return $this
->belongsToMany(Entity::class, 'entity_related', 'related_id', 'entity_id')
->take(1); // <---
}
TO DO
Как правильно определить отношение, которое получает только один(просто любой) экземпляр модели, вместо создания коллекции?
Желаемое использование
После выполнения вышеизложенного я хочу иметь возможность использовать одну модель в моем файле шаблона внутри foreach
цикл:
@foreach($object as $o)
<h2>{{ $o->singleEntity->name }}</h2>
<p>{{ $o->singleEntity->description}}</p>
@endforeach