Данные настройки и фиктивные данные
У меня есть простая модель под названием Категория, которая имеет следующую схему:
|----------------------------------------------|
| cat_id | cat_name | parent_id |
|----------------------------------------------|
| 1 | Home | 0 |
|----------------------------------------------|
| 2 | Products | 1 |
|----------------------------------------------|
| 3 | Services | 1 |
|----------------------------------------------|
| 4 | Product A | 2 |
|----------------------------------------------|
| 5 | Product B | 2 |
|----------------------------------------------|
Желаемый выход
Итак, вы можете видеть, что мы получим очень прямолинейную иерархию следующим образом:
Home
- Products
- Product A
- Product B
- Services
Проблема
Я пытаюсь сопоставить это отношение в Laravel 4.2, чтобы я мог запросить модель и получить ее родительский (он всегда будет иметь родительский) и дочерние категории, если они существуют.
Я определил отношения в модели категории, используя:
public function children()
{
return $this->hasMany('Category', 'parent_id', 'cat_id');
}
public function parent()
{
return $this->belongsTo('Category', 'parent_id');
}
Проблема
Я могу заставить родительское имя работать, используя
$category = Category::findOrFail($id);
return $category->parent->cat_name;
Однако я не понимаю, как получить дочерние объекты.
Я пробовал:
$category = Category::findOrFail($id);
$children = $category->children();
Но когда я dd ($ children), он не выводит то, что я ожидаю.