Laravel ist ein beliebtes PHP -Entwicklungsrahmen, das viele leistungsstarke Funktionen bietet, einschließlich unbegrenzter Klassifizierungsebenen. Die Klassifizierung auf unendliche Ebene ist eine Methode zum Organisieren von Daten in eine Baumstruktur, bei der jeder Knoten eine unendliche Anzahl von untergeordneten Knoten haben kann. Unbegrenzte Klassifizierung ist in vielen Anwendungen üblich, wie z. B. Nachrichtenklassifizierung, Produktklassifizierung usw.
Um die Klassifizierung auf unendlicher Ebene zu implementieren, müssen wir zunächst Datenbanktabellen entwerfen. Eine gemeinsame Entwurfsmethode besteht darin, zwei Felder zu verwenden: ID und Eltern_ID. Das Feld ID wird verwendet, um jeden Knoten eindeutig zu identifizieren, und das Feld parent_id wird verwendet, um den übergeordneten Knoten des Knotens anzuzeigen. Der Elternteil des Stammknotens beträgt normalerweise 0.
CREATE TABLE categories (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
parent_id INT DEFAULT 0
);
In diesem Beispiel erstellen wir eine Kategorie -Tabelle mit ID-, Namen und Parent_id -Feldern. Das Feld ID ist ein Primärschlüssel, der automatisch zunimmt, das Feld Name wird verwendet, um den Namen der Klassifizierung zu speichern, und das Feld STROPPE_ID wird verwendet, um die ID des übergeordneten Knotens zu speichern.
Um alle Unterkategorien einer bestimmten Kategorie zu erhalten, können wir rekursive Abfragen verwenden. Hier ist ein Beispielcode für eine rekursive Abfrage unter Verwendung von Laravels eloquentes ORM:
class Category extends Model
{
public function children()
{
return $this->hasMany(Category::class, 'parent_id', 'id');
}
public function descendants()
{
return $this->children()->with('descendants');
}
}
In diesem Beispiel definieren wir die Methoden der Kinder- und Nachkommensverbände des Kategoriemodells. Die Kindermethode gibt alle direkten Unterklassen der aktuellen Klassifizierung zurück, und die Nachkommensmethode gibt alle Nachkommen der aktuellen Klassifizierung zurück.
Um eine Klassifizierungsliste in einer Ansicht anzuzeigen, können wir eine rekursive Ansicht verwenden. Hier ist ein Beispielcode mit der Blade Template Engine:
@foreach ($categories as $category)
{{ $category->name }}
@if ($category->children->count())
@include('categories.partial.list', ['categories' => $category->children])
@endif
@endforeach
In diesem Beispiel verwenden wir das @Foreach -Tag, um die Klassifizierungsliste anzuzeigen. Für jede Kategorie zeigen wir zunächst den Namen der Kategorie und überprüfen dann, ob Unterkategorien vorhanden sind. Wenn es eine Unterklasse gibt, verwenden wir die @Include -Anweisung, um eine Teilansicht einzuführen und die Unterklasse an sie weiterzugeben.
In diesem Artikel wird die Methode zur Implementierung der Klassifizierung auf Infinite-Ebene im Laravel-Framework eingeführt. Zuerst haben wir eine Datenbanktabelle entwickelt, um Klassifizierungsinformationen zu speichern, dann eloquent ORM für rekursive Abfrage und schließlich die Blade -Vorlage -Engine zur Anzeige der Klassifizierungsliste verwendet. Die Klassifizierung von unendlicher Ebene ist eine sehr praktische Funktion, die uns helfen kann, Daten besser zu organisieren und zu verwalten.