[英]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.