我正在使用PHP中的遗留项目,数据库中的一些表如下所示:
表产品:
+----+-------------+----------------+|id|id_category|id_destination|+----+-------------+----------------+|1|3|1||2|2|1|+----+-------------+----------------+
表类别:
+-------------+----------------+|id |类别名称|+-------------+----------------+|2|服务||3|运输|+-------------+----------------+
表"服务"answers"运输"
+-------------+----------------++-------------+----------------+|id |名称| | id |公里|+-------------+----------------++-------------+----------------+|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-映射元数据
应该足以让你开始。
顺便说一句,在深入研究之前,可以考虑将Symfony升级到v3或至少v2.8,以获得长期支持