6

我使用 Sonata EasyExtends 包扩展了 Sonata 项目的用户包。默认放在 src/Application/Sonata/UserBundle 下

现在我想自定义扩展类并添加一些字段。我注意到虽然没有处理注释,但我需要在 src/Application/Sonata/UserBundle/Resources/config/doctrine/User.orm.xml 中定义映射

有什么方法可以使用注释而不是 XML 文件?我认为它会解决我引用用户类的很多问题,就像现在的命令一样

php 应用程序/控制台原则:模式:更新 --force

似乎不认识注释..

4

2 回答 2

10

首先删除 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 dictionary:schema:update --force 一切都应该很好。

于 2013-01-02T12:34:22.517 回答
-1

在简历中,如果您使用 XML,则注释没有规则。

如果你删除 config/doctrine 文件夹,它会寻找注解,在那里,你可以放你想要的。

于 2015-02-28T08:48:17.597 回答