【发布时间】:2011-09-19 17:18:15
【问题描述】:
我最近开始学习使用 PHP 的 Doctrine 2.0 框架。现在我已经设法利用了一些 Doctrine 的东西(使用 MySQL),使用定义的 XML 模型插入了一些数据,但是现在我在选择数据时遇到了问题。在任何地方,包括 Doctrine 站点,我都发现 DQL 或原始 SQL 正在选择数据。但是这样一来,我就失去了 ORM 提供的一半优势。如何使用纯 ORM 选择数据,例如在 Java 中使用 Hibernate?
这是我正在使用的 Doctrine 网站的一些映射 XML 示例:
<?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>
【问题讨论】:
-
您阅读过association mappings 上的文档吗?您究竟想选择什么?
-
@Orbling:我还没有开始学习联想,现在我正在尝试找出如何检索数据。例如,在这里我想获取 Product 类的实例,就像我插入的一样(使用 EntityManager::persist())。
-
那么从字面上按 ID 检索单个实体?
$product = $entityManager->find('Product', 123);最好在开始之前阅读所有文档。
标签: php mysql doctrine-orm