ロールを選択して新規/編集ユーザー フォームを作成しようとしています。なんとかログインできましたが、役割のドロップダウンを機能させる方法を理解するのに苦労しています。(ロールテーブルには2つのエントリがあります:ROLE_ADMINとROLE_USER)私のエンティティ構成は次のとおりです。
Service\SafetyBundle\Entity\User:
type: entity
table: user
repositoryClass: Service\SafetyBundle\Entity\UserRepository
manyToMany:
roles:
targetEntity: Role
joinTable:
name: user_role
joinColumns:
user_id:
referencedColumnName: id
inverseJoinColumns:
role_id:
referencedColumnName: id
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
user_name:
type: string
length: '40'
user_surname:
type: string
length: '40'
password:
type: integer
length: '6'
salt:
type: string
length: '32'
user_created:
type: datetime
columnDefinition: TIMESTAMP DEFAULT CURRENT_TIMESTAMP
lifecycleCallbacks: { }
Service\SafetyBundle\Entity\Role:
type: entity
table: null
repositoryClass: Service\SafetyBundle\Entity\RoleRepository
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
name:
type: string
length: '30'
lifecycleCallbacks: { }
私のユーザー (トリミング) エンティティ:
/**
* Add roles
*
* @param \Service\SafetyBundle\Entity\Role $roles
* @return User
*/
public function addRole(\Service\SafetyBundle\Entity\Role $roles)
{
$this->roles[] = $roles;
return $this;
}
/**
* Remove roles
*
* @param \Service\SafetyBundle\Entity\Role $roles
*/
public function removeRole(\Service\SafetyBundle\Entity\Role $roles)
{
$this->roles->removeElement($roles);
}
/**
* Get roles
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getRoles()
{
return $this->roles->toArray();
}
public function getRolesForm()
{
return $this->roles;
}
public function setRolesForm($role)
{
return $this->roles[]=$role;
}
/**
* @see \Serializable::serialize()
*/
public function serialize()
{
return serialize(array(
$this->id,
));
}
/**
* @see \Serializable::unserialize()
*/
public function unserialize($serialized)
{
list (
$this->id,
) = unserialize($serialized);
}
public function eraseCredentials()
{
}
形:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('user_name')
->add('user_surname')
->add('password')
->add('roles')
;
$builder->add('save', 'submit');
}
他のスレッドで示されているように、rolesForm を試してみました。
$builder
->add('user_name')
->add('user_surname')
->add('password')
->add('rolesForm')
;
しかし、私は空の入力しか取得せず、検索しましたが、それを理解できません...どんな助けも高く評価されます