проблема присоединения к доктрине 2 [с картографами xml]

Я пытаюсь объединить две таблицы, но застреваю в написании правильных преобразователей 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 - Улица свойства не существует


person timt    schedule 18.04.2011    source источник


Ответы (1)


Вы указали целевой объект для своего поля улицы, но вы должны предоставить сопоставление с таблицей целевых объектов, в данном случае «Адреса». Используя Doctrine 2 XML Mapping, это будет:

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

Это предполагает, что столбец идентификаторов в вашей таблице адресов называется «id».

person Richard    schedule 08.05.2011