Доктрина 2 отображение Xml не работает

Я работал над структурой и доктриной Zend . Я новичок, поэтому, пожалуйста, простите меня за глупые вопросы

До сих пор все шло хорошо, я создавал свои сущности и сопоставлял их с помощью аннотаций DocBlock.

Теперь я хочу использовать сопоставление XML для моих сущностей.

Я создал класс Test.phpследующим образом:

<?php

namespace AlphaEntity;

class Test {

    protected $id;
    protected $name;

    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getName() {
        return $this->name;
    }

    public function setName($name) {
        $this->name = $name;
    }

}

Я использую следующее Для Test.dcm.xmlсопоставления for XML:

<?xml version="1.0" encoding="UTF-8" ?>
<doctrine-mapping 
                  
                  xsi_schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
        http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

    <entity name="AlphaEntityTest" table="test">
        <id name="id" type="integer">
            <generator strategy="AUTO" />
        </id>
        <field name="name" type="string" length="100" />
    </entity>
</doctrine-mapping>

При попытке обновить базу данных с помощью следующей команды:

doctrine-module orm:schema-tool:update --force --dump-sql

I get nothing, it says database schema is up to date. Я получаю это сообщение:

Нечего обновлять-ваша база данных уже синхронизирована с текущей
метаданные сущностей.

Я определил свою сущность в модуле.конфиг.php также и определен для использования XmlDriver, см. ниже код для этого:

'doctrine' => array(
        'driver' => array(
            'alpha_driver' => array(
                'class' => 'DoctrineORMMappingDriverXmlDriver',
                'cache' => 'array',
                'paths' => array(__DIR__ . '/../src/Alpha/Entity')
            ),
            'orm_default' => array(
                'drivers' => array(
                    'AlphaEntity' => 'alpha_driver'
                )
            )
        ),
    ),

Вопросы:

  1. Можно ли использовать DocBlock и Xml-сопоставление в одном модуле?
  2. Если я хочу использовать только отображение Xml, что необходимо сделать?
  3. Что я делаю неправильно выше?

1 ответ

    1. Измените пути конфигурации, потому что они указывают неправильный dir, пример:

      'doctrine' => array(
      'driver' => array(
      'alpha_driver' => array(
      'class' => 'Doctrine\ORM\Mapping\Driver\XmlDriver',
      'cache' => 'array',
      // do not use directory separator after paths
      'paths' => array('.dcm.xml/files/dir')
      ),
      'orm_default' => array(
      'drivers' => array(
      'Alpha\Entity' => 'alpha_driver'
      )
      )
      ),
      ),

      1. Имена файлов должны быть, например, для вашего случая: Alpha.Entity.Test.dcm.xmlоб этом не хватает документации, но так и должно быть