Аннотации в расширенном пользовательском классе Sonata не читаются

Я расширил пользовательский пакет из проекта Sonata с помощью пакета Sonata EasyExtends. По умолчанию он находится в src / Application / Sonata / UserBundle.

Теперь я хочу настроить расширенный класс и добавить несколько полей. Я заметил, что аннотации не обрабатываются, мне нужно определить сопоставления в src / Application / Sonata / UserBundle / Resources / config / doctrine / User.orm.xml

Есть ли способ использовать аннотации вместо файла XML? Я думаю, что это решит многие мои проблемы со ссылкой на пользовательский класс, так как теперь команда

Доктрина приложения / консоли php: схема: обновление --force

не распознает аннотации ..


person user1926848    schedule 26.12.2012    source источник


Ответы (2)


Сначала удалите Application / Sonata / UserBundle / Resources / config / doctrine

а затем измените Entity / User.php и Entity / Group.php на тип аннотации:

<?php

namespace Application\Sonata\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Sonata\UserBundle\Entity\BaseUser as BaseUser;

/**
 * User
 *
 * @ORM\Table(name="fos_user_user")
 * @ORM\Entity
 */

class User extends BaseUser
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=127)
     */
    protected $test;
}
<?php

namespace Application\Sonata\UserBundle\Entity;

use Sonata\UserBundle\Entity\BaseGroup as BaseGroup;
use Doctrine\ORM\Mapping as ORM;

/**
 * Group
 *
 * @ORM\Table(name="fos_user_group")
 * @ORM\Entity
 */
class Group extends BaseGroup
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

}

В конце вы должны ввести: php app / console doctrine: schema: update --force, и все должно работать нормально.

person Community    schedule 02.01.2013

В резюме, если вы используете XML, аннотации не правила.

Если вы удалите папку config / doctrine, она будет искать аннотации, и туда вы можете поместить то, что хотите.

person txurdi    schedule 28.02.2015