我努力做到以下幾點: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();
如果我輸出這些foreach循環中,那麼它只會顯示的記錄之一,那裏有多個具有相同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
是的。對於孩子,你必須將其設置爲父內容ID的ID。對於父內容對象,它應該設置爲null。 –
不行,它不工作..外鍵設置爲:'parent_id' - >爲內容表中的其他部分和'section_id'部分表內ID的外鍵? – Phorce