我使用Sonata EasyExtends捆绑包从Sonata项目扩展了用户捆绑包。 它默认放在src / Application / Sonata / UserBundle下
现在我想自定义扩展类并添加一些字段。 我注意到注释没有被处理,我需要在src / Application / Sonata / UserBundle / Resources / config / doctrine / User.orm.xml中定义映射
有没有办法使用注释而不是XML文件? 我认为它将通过引用用户类来解决我的许多问题,就像现在的命令一样
php app / console doctrine:schema:update --force
似乎没有认识到注释..
答案 0 :(得分: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 doctrine:schema:update --force,一切都应该很好。
答案 1 :(得分:-1)
在简历中,如果使用XML,则注释不会规则。
如果删除config / doctrine文件夹,它会查找注释,在那里,你可以放置你想要的内容。