Outils pour utilisateurs

Outils du site


devweb:laravel:eloquent:requete_recursive (lu 3013 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

devweb:laravel:eloquent:requete_recursive [16-07-2020 09:57]
edmc73 créée
devweb:laravel:eloquent:requete_recursive [20-07-2020 09:57]
edmc73
Ligne 26: Ligne 26:
  
  public function childrens() {  public function childrens() {
-     return $this->hasMany(Famille::class, 'id_parent', 'id');+ return $this->hasMany(Famille::class, 'id_parent', 'id');
  }  }
  
  public function recursiveChildren() {  public function recursiveChildren() {
-     return $this->childrens()->with('recursiveChildren');+ return $this->childrens()->with('recursiveChildren'); 
 + // si vous voulez trier par nom 
 + return $this->childrens()->orderBy('nom')->with('recursiveChildren');
  }  }
 } }
Ligne 89: Ligne 91:
 <code php> <code php>
 public function index(){ public function index(){
- $familles = Famille::with('recursiveChildren')->whereNull('id_parent')->get();+ $familles = Famille::with('recursiveChildren')->whereNull('id_parent')->orderBy('nom')->get();
  return view('famille', compact('familles'));  return view('famille', compact('familles'));
 } }
Ligne 123: Ligne 125:
 </code> </code>
  
 +Pour un affichage en liste avec ul et li
 +
 +Vue: famille.blade.php
 +<code php>
 +<ul>
 +@foreach ( $familles as $e )
 + @include('famille-item', ['famille'=>$e])
 +@endforeach
 +</ul>
 +</code>
 +
 +Vue: famille-item.blade.php
 +<code php>
 + <li>{!! $tab !!}{{ $famille->nom }}</li>
 + @if(isset($famille->recursiveChildren) and count($famille->recursiveChildren))
 + <ul>
 + @foreach ($famille->recursiveChildren as $element)
 + @include('visu.groupe-item', ['famille'=>$element])
 + @endforeach
 + </ul>
 + @endif
 +</code>
  
devweb/laravel/eloquent/requete_recursive.txt · Dernière modification: 20-07-2020 09:57 de edmc73