我正在创建一个表单类型来更新用户拥有的帐户选项。
我有3个实体User
,UserHasAccount
和Account
。
以下是他们之间的关系:
User
(OTM)< - > (MTO)UserHasAccount
(MTO)< - > (OTM)Account
在UserHasAccount
我有两个选项options1
和options2
(布尔值)
帐户可以链接到多个用户。我有一个页面,我希望能够更改链接到Users
Account
的{{1}}的选项
以下是映射/account/{id}/manage-user
User
AccountUserOption表单类型:
class AccounUserOptionFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('user', 'entity', array(
'class' => 'AcmeUserBundle:User',
'property' => 'fullname',
))
->add('option1', 'checkbox', array(
'label' => 'account.form.option.one',
'required' => false,
'error_bubbling' => true,
))
->add('option2', 'checkbox', array(
'label' => 'account.form.option.two',
'required' => false,
'error_bubbling' => true,
))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\UserBundle\Entity\UserHasAccount',
'translation_domain' => 'AcmeAccountBundle'
));
}
public function getName()
{
return 'acme_update_account_option_type';
}
}
我遇到的问题是:
class AccountUserOptionType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// Display the collection of users
->add('accountUser', 'collection', array(
'type' => new AccountUserOptionFormType($options),
))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\AccountBundle\Entity\Account',
'cascade_validation' => true,
'validation_groups' => array('AcmeUpdateOption'),
));
}
public function getName()
{
return 'acme_account_user_option_type';
}
}
我只想显示(标签或类似)用户名。使用实体显示下拉列表:/我可以使用任何核心字段类型,还是必须创建自定义字段?我认为这可能是核心。
干杯, 马克西姆