Задать вопрос
@Filipinnetc

Laravel pivot table и first()?

Есть группы и предметы. Каждая группа должна иметь НЕСКОЛЬКО предметов, каждый предмет из группы должен иметь ОДНУ группу. Сделал pivot таблицу group_subject, чтобы большую инфу с предметов не копировать туда-сюда, а оставить их в Subjects.
6130d14e8e8b4480453969.jpeg
Как можно сделать так, чтобы я мог получить из предмета группу ОДНУ и НЕ коллекцией из нескольких групп?
Если написать в классе Subject
public function groups() {
        return $this->belongsToMany(Group::class);
    }

то я получу коллекцию (массив) даже если запись в pivot table одна. Мне хочется получать всегда НЕ коллекцию. Добавление first() не работает.. (именно в методе, который связывает таблицы). можно конечно юзать first() отдельно, но я тогда не смогу использовать что-то типа with('groups') & first()
  • Вопрос задан
  • 341 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Сами же говорите - не каждый предмет, а каждый предмет из группы.
Вам нужна не pivot table, а самостоятельная модель GroupSubject - в которой уже отношение к группам как один ко многим.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы