我不知道如何提出這個問題,但我會盡我所能。如何在其父集合中進行雄辯的推送子集合?
- 我
Subcategories
表有與Categories
表 - 我
Subcategories
表有與Subtags
表many-to-many
關係的一個一對一的關係。 - 我的表格
Subtags
與Tags
表格的關係爲one-to-many
。
我有一個Categories
表
+------+--------+
+ id + name +
+------+--------+
我有一個Subcategories
表
+------+----------------+--------+
+ id + categories_id + name +
+------+----------------+--------+
Class Subcategory {
public function category()
{
return $this->hasOne('Category', 'id', 'categories_id');
}
public function subtags()
{
return $this->belongsToMany('Subtag', 'subcategories_has_subtags', 'subcategories_id', 'subtags_id');
}
}
我有一個Tags
表
+------+--------+
+ id + name +
+------+--------+
Class Tag {
public function subtag()
{
return $this->hasMany('Subtag', 'tags_id', 'id');
}
}
我有Subtags
Ť能夠
+------+----------+--------+
+ id + tags_id + name +
+------+----------+--------+
Class Subtag {
public function subcategories()
{
return $this->belongsToMany('Subcategory', 'subcategories_has_subtags', 'subtags_id', 'subcategories_id');
}
public function tag()
{
return $this->hasOne('Tag', 'id', 'tags_id');
}
}
我有這個疑問:
Post::find($id)->with('categories.subcategories.subtags');
什麼雄辯返回與此查詢:
Post Collection Test
=> Category Collection
=> Subcategory Collection
=> Subtag Collection 1
=> Tag Collection (tags_id) 1
=> Subtag Collection 2
=> Tag Collection (tags_id) 1
=> Subtag Collection 3
=> Tag Collection (tags_id) 1
=> Subtag Collection 4
=> Tag Collection (tags_id) 2
我想要什麼:
Post Collection Test
=> Category Collection
=> Subcategory Collection
=> Tag Collection (tags_id) 1
=> Subtag Collection 1
=> Subtag Collection 2
=> Subtag Collection 3
=> Tag Collection (tags_id) 2
=> Subtag Collection 4
用雄辯是否有可能?或者我必須手動?
謝謝你提前
1您可以使用('categories.subcategories.subtags')'代替嵌套的閉包。 2你不清楚你問什麼,所以重新提出你的問題並添加一個例子。 –
對不起,我的詞彙量有限,我沒有確切的詞彙。我已經添加了一個我想要Eloquent返回的例子。 – KeizerBridge
不要擔心vocab,我只是說它不清楚。顯示涉及的表格以及您需要的結果。順便說一句'Post :: find($ id) - > with(..) - > get()'有點不對 - 'find'已經提取了結果,然後用'get'運行另一個查詢。 –