0
我建立用戶實體與具有場的角色存儲在數據庫中的角色:Symfony2的形式收集陣列錯誤
/**
* @var array
* @ORM\Column(name="roles", type="json_array")
*/
private $roles = array();
public function getRoles()
{
$roles = $this->roles;
$roles[] = 'ROLE_USER';
return array_unique($roles);
}
public function setPassword($password)
{
$this->password = $password;
return $this;
}
它存儲與數據庫中的一個陣列。這是建立在教程上的。我意識到,如果它像數據庫中的數組,它將需要在表單構建器中成爲一個集合嗎?下面是代碼:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username')
->add('password')
->add('plainPassword', 'repeated', array('type' => 'password', 'required' => false))
->add('roles', 'choice', array(
'choices' => array(
'ROLE_USER' => 'ROLE_USER',
'ROLE_ADMIN' => 'ROLE_ADMIN'
),
'multiple' => true,
))
->add('isActive')
->add('mail');
}
末樹枝渲染
{{ form_widget(edit_form.roles) }}
所以基本想法是有一個選擇欄的所有角色時選擇用戶,然後更新數據庫。但由於某些原因,當我刪除
'multiple' => true
我得到了這樣的錯誤...
什麼是這裏最好的解決辦法?我不想有多種選擇,但只有一種選擇。
最後一件事是它沒有填充數據庫,但我得到的信息,當我打電話之前堅持它保存它們,但沒有默認。
$entity->setRoles($entity->getRoles());
我明白了你的觀點。非常感謝! :) –