Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony Doctrine2 FosUserBundle重写列名_Symfony_Doctrine Orm_Attributes_Entity_Fosuserbundle - Fatal编程技术网

Symfony Doctrine2 FosUserBundle重写列名

Symfony Doctrine2 FosUserBundle重写列名,symfony,doctrine-orm,attributes,entity,fosuserbundle,Symfony,Doctrine Orm,Attributes,Entity,Fosuserbundle,在Symfony2中使用fosUserBundle和原则。 以下是版本: “symfony/symfony”:“2.7.7” “条令/orm”:“^2.4.8” “条令/条令包”:“~1.4” “friendsofsymfony/用户包”:“~2.0.0-alpha3” 试图覆盖列名,如用户名1 以下是我的工作: 名称空间项目\BUNDLE\Entity use FOS\UserBundle\Model\User as BaseUser; use Doctrine\ORM\Mapping a

Symfony2中使用fosUserBundle原则。 以下是版本:

  • “symfony/symfony”:“2.7.7”
  • “条令/orm”:“^2.4.8”
  • “条令/条令包”:“~1.4”
  • “friendsofsymfony/用户包”:“~2.0.0-alpha3”
试图覆盖列名,如用户名1

以下是我的工作: 名称空间项目\BUNDLE\Entity

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Groups;
use Gedmo\Mapping\Annotation as Gedmo;

/**
* @ORM\Table(name="PROJECT_BUNDLE_USER")
 * @ORM\Entity(repositoryClass="PROJECT\BUNDLE\Entity\UserRepository")
 * @ORM\AttributeOverrides({
 *      @ORM\AttributeOverride(name="username",
 *          column=@ORM\Column(
 *              name    = "BUNDLE_USERNAME"
 *          )
 *      ),
  [....]
 * })
 */
class User extends BaseUser
{
  [....]
当我想用
php应用程序/控制台原则:generate:entities项目生成实体时

编辑1:添加名称空间并使用

编辑2:类型和长度属性fullfield出现相同错误:

    column=@ORM\Column(
 *              name    = "USER_USERNAME",
 *              type    = "string",
 *              length  = 255
 *          )

你不是同时缺少了列类型和长度吗?

我花了一整天的时间处理类似的问题,对我来说更改加载的列名的有效方法是:

/*
 * @ORM\Entity
 * @ORM\Table(name="Utilisateurs")
 * @ORM\AttributeOverrides({
 *      @ORM\AttributeOverride(name="password",
 *         column=@ORM\Column(
 *             name="MDP",
 *             type="string",
 *             length=50,
 *             nullable=false
 *         )
 *     ),})
其中MDP是我的数据库_表的名称,密码是FOSUserbundle想要的名称。一定要指定类型,因为某些原因,没有它一切都会出错。
编辑:这是用FOSUserBundle~1.3完成的,如果你可以降级的话,它应该可以工作。

你能为你的用户实体发布你的
名称空间
使用
s语句吗?@DaviKoscianskiVidal:doneThey不是强制性的,我对那些完整的内容也有同样的错误抱歉没有看到你之前的评论。所以,你不能降级你的FOSUserBundle,也不能升级你的symfony?github上的Stof(贡献者之一)通常建议人们在不使用Symfony 3.X时使用1.3.X,因为这似乎是兼容性问题之类的。顺便说一句,我刚刚看到您使用了@ORM\Entity(repositoryClass=“PROJECT\BUNDLE\Entity\UserRepository”),尝试一下我使用的语法(这不是我自大,我记得在repositoryClass上遇到过问题,我想知道它是否可以绕过。)希望答案不远。。。
/*
 * @ORM\Entity
 * @ORM\Table(name="Utilisateurs")
 * @ORM\AttributeOverrides({
 *      @ORM\AttributeOverride(name="password",
 *         column=@ORM\Column(
 *             name="MDP",
 *             type="string",
 *             length=50,
 *             nullable=false
 *         )
 *     ),})