2016-04-15 2 views
0

Я работаю с унаследованным проектом в PHP и несколько таблиц в базе данных выглядит следующим образом:Doctrine отображение многих связанных таблиц

Таблица продукта:

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

Таблица Категория:

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

Столы "услуги" и "транспорт"

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

И теперь, когда я хочу проверить продукт с ID 1 он будет вызывать:

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

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

, а затем:

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

Мой вопрос, как я могу это отображается в Учении. Я работаю над Symfony 2.6

ответ

0

Вы хотите посмотреть на добавление Entity classes в Symfony для обработки данных из вашей базы данных; подумайте об этом как о самих таблицах базы данных.

Затем используйте Doctrine Association Mapping; это автоматически обрабатывает таблицы поиска (например, MySQL JOIN), позволяя вам просто получить $product и автоматически получить доступ к $product->getCategory() или $product->getServices().

Существует статья об этом на веб-сайте Symfony который тоже действует как хорошее введение: http://symfony.com/doc/current/book/doctrine.html#relationship-mapping-metadata

Должно быть достаточно, чтобы вы начали.

На боковой ноте подумайте о upgrading Symfony по v3 или, по крайней мере, v2.8, для долгосрочной поддержки, прежде чем вы начнете слишком глубоко.

+0

Я знаю, как объекты сопоставления в symfony, но я не знаю, как настроить эту специальную ассоциацию –

Смежные вопросы