Php 如何使用Doctrine 2.0 ORM模型选择数据库数据?
我最近开始学习如何使用Doctrine 2.0 PHP框架。现在我已经设法利用了一些原则(使用MySQL),使用定义的XML模型插入了一些数据,但是现在我在选择数据方面遇到了问题。在任何地方,包括Doctrine站点,我都发现数据是由DQL或原始SQL选择的。但这样一来,我就失去了ORM提供的一半优势。我如何使用纯ORM选择数据,例如我可以使用Java中的Hibernate 下面是我正在使用的Doctrine站点中的一些映射XML示例:Php 如何使用Doctrine 2.0 ORM模型选择数据库数据?,php,mysql,doctrine-orm,Php,Mysql,Doctrine Orm,我最近开始学习如何使用Doctrine 2.0 PHP框架。现在我已经设法利用了一些原则(使用MySQL),使用定义的XML模型插入了一些数据,但是现在我在选择数据方面遇到了问题。在任何地方,包括Doctrine站点,我都发现数据是由DQL或原始SQL选择的。但这样一来,我就失去了ORM提供的一半优势。我如何使用纯ORM选择数据,例如我可以使用Java中的Hibernate 下面是我正在使用的Doctrine站点中的一些映射XML示例: <?xml version="1.0" encodi
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Product" table="products">
<id name="id" type="integer" column="product_id">
<generator strategy="AUTO" />
</id>
<field name="name" column="product_name" type="string" />
</entity>
</doctrine-mapping>
读取数据的最简单方法是使用
EntityManager->find()
,将要加载的类作为第一个参数(字符串)传入,并将该实体的ID作为第二个参数传入。我最近也开始学习Doctrine 2,我能给你的最好建议是阅读上面链接的所有文档,并使用注释而不是XML(至少从XML开始)
HTH.一开始我也错过了这一点,但重要的是要理解DQL不理解表的概念(阅读说明),它纯粹是面向对象的查询。这就是查询模型,而不是直接查询数据库
手册本身说明“DQL”。您是否阅读了上的文档?你到底想选择什么?@Orbling:我还没有开始学习联想,现在我正试图找出如何检索数据。例如,在这里,我想得到产品类的实例,和我插入的(使用EntityManager::persist())一样<代码>$product=$entityManager->查找('product',123)代码>最好在开始之前阅读所有文档。我将尝试使用它,thx提供建议。我习惯于使用Java Hibernate的XML映射,这对我来说是更好的习惯。@James:就像Robin在上面说的和我在评论中说的,在真正开始之前,你必须阅读和消化所有文档。否则你会以一种尴尬的方式结束工作。