Das Verbinden einer Tabelle mit sich selbst ist keine eingebaute Funktion, sondern kann einfach durch Ändern des vom CRUD-Generator generierten SQL-Codes durchgeführt werden.
Einige Tabellen können manchmal einen relationalen Schlüssel für sich selbst verwenden.
Zum Beispiel eine Tabelle, die gleichzeitig Kategorien und Unterkategorien enthält (siehe das Bild unten).
In diesem Beispiel hat jede Unterkategorie eine Beziehung zu einer übergeordneten Kategorie.
PHP CRUD Generator ist in der Lage, diese speziellen Verknüpfungen genauso zu verstehen wie die üblichen Beziehungen.
Die im Admin generierten Formulare verwenden diese Beziehungen ohne Probleme.
Andererseits muss die SQL-Abfrage, die zum Abrufen von Datensätzen aus der READ-Liste verwendet wird, bearbeitet werden, damit sie richtig funktioniert.
Und so geht's:
Öffnen Sie das PHP-Klassenmodell für Ihre Tabelle, das Sie unter admin/class/crud/[Tabellenname].php
finden.
In dieser Datei finden Sie 2 Zeilen, die die Basis-SQL-Abfrage erstellen.
Mit den oben genanntenBeispiel-"Kategorien" sollte es so aussehen:
$this->join_query = ' LEFT JOIN `categories` ON `categories`.`parent_category_id`=`categories`.`id`';
$qry_start = 'SELECT
`categories`.`id`,
`categories`.`parent_category_id` AS `categories_parent_category_id`,
`categories`.`name`
FROM categories';
Sie müssen diesen Antrag bearbeiten, um:
LEFT JOIN
in die Variable $qry_start
.Ihr endgültiger Code sollte wie folgt aussehen:
$this->join_query = '';
$qry_start = 'SELECT
`categories`.`id`,
`c2`.`parent_category_id` AS `categories_parent_category_id`,
`categories`.`name`
FROM categories
LEFT JOIN `categories` c2
ON `categories`.`parent_category_id`=`c2`.`id`';
In diesem Beispiel ist c2
ein Alias für die Tabelle categories
.
Wir verwenden ihn mit der parent_category_id
Ein sehr gutes Tutorial über MySQL Self Join finden Sie hier
Bauen Sie Ihre Datenbank auf