Я пытаюсь сделать следующее:Laravel 5 - Elequent GROUP BY не удается
У меня есть две таблицы:
1) Content
id,
section_id
parent_id,
sequence,
2) Sections
id,
title,
description,
date_entered
Каждый контент должен иметь раздел, который определяется с помощью внешнего ключа , содержание может иметь раздел подменит, в котором, если содержание имеет одинаковый parent_id - то это классифицируется как подразделы .. так, например:
1. My first section
1.1. My first sub section
2. My second section
3. My third section
3.1 My third sub section
Я использую красноречив и использовал следующий:
$sections = Content::orderBy('sequence', 'desc')
->groupBy('parent_id')->get();
Если я выход этих пределов цикла Еогеаспа, то он будет показывать только одну из записей, где существует несколько, которые имеют один и тот же parent_id, если я удалю groupBy
то он будет отображать все записи, но не в группах
Я настроил отношения так, что: есть belongsTo
отношения .. Так
public function sections()
{
return $this->belongsTo('App\Sections', 'section_id');
}
Где я буду здесь не так?
UPDATE:
1) Content
id,
section_id
parent_id,
sequence,
FOREIGN KEYS:
parent_id -> id,
section_id -> id on Sections (below)
2) Sections
id,
title,
description,
date_entered
Благодарим вас за это. Это, к сожалению, ничего не возвращает. Но я думаю, что это потому, что внешний ключ в «Контенте» не был настроен. Значит, 'parent_id' должен быть внешним ключом к другим записям внутри таблицы? – Phorce
Да. Для детей вы должны установить его идентификатор родительского идентификатора содержимого. Для родительских объектов содержимого оно должно быть равно null. –
Нет, это не работает. Внешние ключи настроены для: 'parent_id' -> для других разделов внутри таблицы Content и внешнего ключа' section_id' для идентификаторов внутри таблицы разделов? – Phorce