Zend Framework, Doctrine 2 @ManyToOne - PullRequest
       12

Zend Framework, Doctrine 2 @ManyToOne

1 голос
/ 10 октября 2011

Я следовал этому руководству http://www.zendcasts.com/one-to-many-with-doctrine-2/2011/03/ к шагу (исходные коды можно скачать оттуда) И все работает отлично, поэтому я получил 2 сущности - Покупка и Пользователь. Если я запрашиваю пользователя, все в порядке, но если я запрашиваю покупку, вот так:

$entityManager->createQuery('select p from ZC\Entity\Purchase p where p.id = 1')->execute();

Я получу фатальную ошибку:

Fatal error: require() [function.require]: Failed opening required 'C:\xampp\htdocs\CoChces\application/../library/CC/Entity/Proxy\CCEntityCategoryProxy.php' (include_path='C:\xampp\htdocs\CoChces\application/../library;C:\xampp\htdocs\CoChces\library;.;C:\xampp\php\PEAR') in C:\xampp\htdocs\CoChces\library\Doctrine\ORM\Proxy\ProxyFactory.php on line 85

Но если я прокомментирую эти строки в Закупке:

 /**
 *
 * @var User
 * @ManyToOne(targetEntity="User")
 * @JoinColumns({
 *  @JoinColumn(name="user_id", referencedColumnName="id")
 * })
 */
private $user;

Everithing работает просто отлично. Так что должна быть какая-то проблема с аннотацией @ManyToOne. Кто-нибудь знает, что с этим делать? Возможно, какое-то решение?

Большое спасибо за ответы ..

Я использую PHP 5.3.8

1 Ответ

0 голосов
/ 11 октября 2011

Пара вещей ...

  1. Ваш синтаксис аннотации выглядит неправильно. Попробуйте

    /**
     * @var User
     * @ManyToOne(targetEntity="User")
     */
    private $user;
    

    @JoinColumns нигде не встречается в документации. Кроме того, аннотация @JoinColumn является избыточной, поскольку вы используете значения по умолчанию. См. http://www.doctrine -project.org / docs / orm / 2.1 / en / reference / association-mapping.html # много-к-одному-однонаправленный

  2. Ваш запрос DQL ссылается на корень пространства имен ZC, но в сообщении об ошибке указано CC. Что правильно?

...