簡體   English   中英

教義映射許多鏈接表

[英]Doctrine mapping many linked tables

我正在使用PHP中的舊項目,數據庫中的表很少像這樣:

餐桌產品:

+----+-------------+----------------+
|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

您想看看在Symfony中添加Entity類來處理數據庫中的數據。 將它們視為數據庫表本身。

然后使用教義關聯映射 ; 這會自動處理查找表(如MySQL JOIN的表),使您可以簡單地獲取$product並自動訪問$product->getCategory()$product->getServices()

Symfony網站上也有關於此的文章,可以很好地介紹它: http : //symfony.com/doc/current/book/doctrine.html#relationship-mapping-metadata

應該足以讓您入門。

附帶一提,可以考慮將Symfony升級到v3或至少v2.8,以獲得長期支持,然后再進行深入研究。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM