2016-04-15 7 views
0

Ich arbeite mit Legacy-Projekt in PHP und nur wenige von Tabellen in der Datenbank sieht wie folgt aus:Lehre Mapping viele verknüpfte Tabellen

Tabelle Produkt:

 
+----+-------------+----------------+ 
|id | id_category | id_destination | 
+----+-------------+----------------+ 
|1 | 3   | 1    | 
|2 | 2   | 1    | 
+----+-------------+----------------+ 

Tabelle Kategorie:

 
+-------------+----------------+ 
| id   | category_name | 
+-------------+----------------+ 
| 2   | services  | 
| 3   | transport  | 
+-------------+----------------+ 

Tabellen "Dienstleistungen" und "Transport"

 
+-------------+----------------+ +-------------+----------------+ 
| id   | name   | | id   | kilometers  | 
+-------------+----------------+ +-------------+----------------+ 
| 1   | 'foo'   | | 1   | 156   | 
| 2   | 'bar'   | | 2   | 12    | 
+-------------+----------------+ +-------------+----------------+ 
jetzt

Und wo ich 1 mit ID überprüfen Produkt wollen es nennen:

$info = SELECT * FROM product WHERE ID = 1; 

$table = SELECT category_name FROM category WHERE ID = $info['id_category']; 

und dann:

SELECT * FROM $table WHERE id = $info['id_destination']; 

Meine Frage ist, wie kann ich diese in Lehre abgebildet. Ich arbeite an Symfony 2.6

Antwort

0

Sie möchten in Symfony Entity classes hinzufügen, um die Daten zu/von Ihrer Datenbank zu behandeln; Betrachten Sie diese als die Datenbanktabellen selbst.

Dann verwenden Sie Doctrine Association Mapping; Dies behandelt automatisch Nachschlagetabellen (wie MySQL JOIN), so dass Sie einfach die $product erhalten und automatisch Zugriff auf $product->getCategory() oder $product->getServices() haben.

Es gibt einen Artikel zu diesem Thema auf der Symfony Webseite zu, die als gute Einführung wirkt: http://symfony.com/doc/current/book/doctrine.html#relationship-mapping-metadata

genug sein sollten, um Ihnen den Einstieg.

Nebenbei bemerkt, denken Sie an upgrading Symfony zu v3 oder zumindest v2.8, für langfristige Unterstützung, bevor Sie zu tief werden.

+0

Ich weiß wie Mapping-Entities in Symfony, aber ich weiß nicht, wie diese spezielle Zuordnung zuordnen –

Verwandte Themen