[英]Symfony2 form entity preferred_choices set selected values
我在尝试在表单上设置首选值上的选定值时遇到一些麻烦。
我有一个班级日历,可以有多种税收:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('possibledigits')
->add('notes')
->add('autogenerateyear', 'checkbox', array('required' => false))
->add('calendartaxes', null, array(
'required' => false,
'multiple' => true,
'expanded' => true
))
;
}
关系是多对多的:
/**
* @ORM\ManyToMany(targetEntity="CalendarTax", indexBy="name", inversedBy="calendarios")
* @ORM\JoinTable(name="contable_schedule_taxes_relation")
*/
private $calendartaxes;
我要做的是尝试获取表单的实体并尝试获取选定的税款。 但是我不知道这是否是正确的方法。 有更优雅的方法吗?
我正在使用symfony 2.3。
问候。
我假设您在Calendarios和CalendarTax之间建立了关系
所以在创建表单之前...
$calendarios = new CalendarIOS();
$calendartax = $this->getDoctrine()->getManager()->getRepository('NamBundle:CalendarTax')->find($calendar_tax_id);
$calendarios->addCalendarTax($calendartax);
现在,当您将实体发送到formbuilder时...您将检查该垂直日历税... :)
最后,我使用选择的preferred_choices。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$calendario = $builder->getData();
$taxesId = array();
foreach($calendario->getCalendartaxes() as $tax){
$taxesId[] = $tax;
}
$builder
->add('name')
->add('possibledigits')
->add('notes')
->add('autogenerateyear', 'checkbox', array('required' => false))
->add('calendartaxes', null, array(
'required' => false,
'multiple' => true,
'expanded' => true,
'preferred_choices' => $taxesId,
))
;
}
再进行一次查询并获取表单构建器的日历。 @Hakim的评论使我走上了正确的道路。
谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.