2016-01-22 4 views
1

Использование fosUserBundle в Symfony2 с Учение. Вот варианты:Doctrine2 FosUserBundle имя столбца переопределение

  • "Symfony/Symfony": "2.7.7"
  • "доктрина/ОРМ": "^ 2.4.8"
  • "доктрина/Доктрина-расслоение": " ~ 1.4"
  • "friendsofsymfony/пользовательский пакет": "~ 2.0.0-alpha3"

Попытка переопределить имя столбца, такую ​​как имя пользователя один.

Вот что я делаю: namespace PROJECT \ 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", 
*   [email protected]\Column(
*    name = "BUNDLE_USERNAME" 
*   ) 
*  ), 
    [....] 
* }) 
*/ 
class User extends BaseUser 
{ 
    [....] 

Когда я хочу, чтобы создать объект с php app/console doctrine:generate:entities PROJECT

[Doctrine\ORM\Mapping\MappingException]            
     Invalid field override named 'username' for class 'PROJECT\BUNDLE\Entity\User'. 

EDIT 1: добавить пространства имен и использовать

EDIT 2: Та же ошибка типа и длины атрибутов fullfiled :

[email protected]\Column(
*    name = "USER_USERNAME", 
*    type = "string", 
*    length = 255 
*   ) 
+0

Можете ли вы публиковать свои выражения 'namespace' и' use 'для пользователя User? –

+0

@DaviKoscianskiVidal: done – BastienSander

ответ

0

Вам не хватает типа и длины столбца?

+0

Они не являются обязательными, и у меня такая же ошибка с теми, что заполнены – BastienSander

2

Я провел весь день на подобных неприятностях, что работает для меня, чтобы изменить имя столбца загруженное это:

/* 
* @ORM\Entity 
* @ORM\Table(name="Utilisateurs") 
* @ORM\AttributeOverrides({ 
*  @ORM\AttributeOverride(name="password", 
*   [email protected]\Column(
*    name="MDP", 
*    type="string", 
*    length=50, 
*    nullable=false 
*  ) 
* ),}) 

Где MDP это имя моего database_table и пароль имени FOSUserbundle хочет. Не забудьте указать тип, по какой-то причине все идет не так без него. EDIT: Это было сделано с помощью FOSUserBundle ~ 1.3, если вы можете понизить его, он должен работать.

+0

Не работает для меня в последней версии ...: s – BastienSander

+0

Извините, не комментировал ранее. Итак, вы не можете понизить свой FOSUserBundle и не можете обновить свой Symfony? Stof on github (один из участников) обычно советует людям использовать 1.3.X, когда не использует Symfony 3.X, потому что, похоже, они проблемы с совместимостью или что-то в этом роде. Btw Я только что увидел, что вы использовали @ORM \ Entity (repositoryClass = "PROJECT \ BUNDLE \ Entity \ UserRepository"), попробуйте использовать синтаксис, который я использовал (это не я высокомерный, я напомнил, что у меня возникли проблемы с repositoryClass, и мне интересно, он обходит.) Надеюсь, ответ не за горами ... – LamaDelRay

Смежные вопросы