【问题标题】:doctrine 2 join problem [with xml mappers]学说 2 加入问题 [使用 xml 映射器]
【发布时间】:2011-08-07 20:05:51
【问题描述】:

我尝试加入两个表,但在编写正确的 xml 映射器时遇到了困难(设置和实体访问经过测试并且工作正常)

  • 基于 MySQL、Doctrine 2.0.4 和 ZF-1.11
  • 我正在使用 XmlDriver('path\to\mappers);

查询

$query = $em->createQueryBuilder()
    ->select('u')
    ->from('\Entities\Users', 'u')
    ->leftJoin('u.Addresses', 'a')
    ->getQuery();
$info = $query->getResult();

映射器

<?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="Entities\Users" table="users">

    <change-tracking-policy>DEFERRED_IMPLICIT</change-tracking-policy>

    <id name="id" type="integer" column="id">
      <generator strategy="IDENTITY"/>
    </id>

    <field name="name" type="string" column="name"/>

    <many-to-one field="street" target-entity="Addresses" />

  </entity>
</doctrine-mapping>

但是对于所有可能的关系(我在这里累了:)我总是遇到同样的问题:找不到相关实体的属性:

Doctrine\ORM\Mapping\MappingException - 物业街不存在

【问题讨论】:

    标签: xml join annotations doctrine-orm mapper


    【解决方案1】:

    您已为街道字段提供了目标实体,但您必须提供回目标实体表的映射,在本例中为“地址”。使用 Doctrine 2 XML Mapping 这将是:

    <many-to-one field="street" target-entity="Addresses" inversed-by="id" />
    

    这假定您的地址表上的标识列名为“id”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多