Ich habe diese einfache Tabelle alle Kategorien enthalten:Laravel: Abfrage kinderlos Elemente in einer Tabelle
Kategorie: id | Name | parentid
Eloquent Verwendung, wie kann ich alle Kategorien abfragen, die keine Childs haben ?
Ich habe diese einfache Tabelle alle Kategorien enthalten:Laravel: Abfrage kinderlos Elemente in einer Tabelle
Kategorie: id | Name | parentid
Eloquent Verwendung, wie kann ich alle Kategorien abfragen, die keine Childs haben ?
Sie etwas tun könnte, wie:
Category::whereNull('parent_id')->get();
aber es könnte besser eine ‚Kinder‘ Beziehung im Modell und es, dass die Verwendung tut Einrichtung werden:
category.php
public function children()
{
return $this->hasMany('App\Category', 'parent_id', 'id');
}
Verwendung
Category::whereDoesntHave('children')->get();
Vielen Dank! Ich musste dies jedoch ändern: zurückgeben $ this-> hasMany ('App \ Category', 'ID', 'ParentID); zu return $ this-> hasMany ('App \ Category', 'parentid', 'id'); –
ah, ich werde die Antwort aktualisieren, ich bekomme immer die falschen herum. – martincarlin87
Sie haben eine Beziehung zu bauen und dann können Sie verwenden, um die folgenden
$query = Category::query();
$query->whereDoesntHave('child');
$query->get();
oder einfachste ist
Category::whereNull('parent_id')->get();
was sind Childs ?, erklären weiter mit Ihrem Code –
mit Childs ich meine : Kategorien, deren Wert für "ID" nicht als Wert von "Parentid" für andere Kategorien auftritt. –