Laravel parent / enfant relation sur le même modèle

De La Configuration Et Des Données Factices

J'ai un modèle simple appelée Catégorie, qui a le schéma suivant:

|----------------------------------------------|
| cat_id   | cat_name    | parent_id           |
|----------------------------------------------|
|   1      | Home        |   0                 |
|----------------------------------------------|
|   2      | Products    |   1                 |
|----------------------------------------------| 
|   3      | Services    |   1                 |
|----------------------------------------------|
|   4      | Product A   |   2                 |
|----------------------------------------------|
|   5      | Product B   |   2                 |
|----------------------------------------------|

La Sortie Désirée

De sorte que vous pouvez voir que nous obtiendrions une très linéaire de la hiérarchie comme suit:

Home
  - Products
      - Product A
      - Product B
  - Services

La Question

Je suis en train de carte cette relation dans Laravel 4.2, afin que je puisse requête d'un modèle et d'obtenir de ses parents, il aura toujours un parent), et des catégories enfants, s'ils existent.

J'ai défini la relation dans la Catégorie modèle de l'aide:

public function children()
{
    return $this->hasMany('Category', 'parent_id', 'cat_id');
}
public function parent()
{
    return $this->belongsTo('Category', 'parent_id');
}

Le Problème

Je peux obtenir le nom parent de travail, à l'aide de

$category = Category::findOrFail($id);
return $category->parent->cat_name;

Cependant, je ne comprends pas comment obtenir les objets enfants.

J'ai essayé:

$category = Category::findOrFail($id);
$children = $category->children();

Mais quand j'dd($enfants) qu'il n'a pas de sortie ce que je m'attendrais.

source d'informationauteur Amo