我有一个实体对象,其大小字段(是一个数组)可用的大小不同。 (例如:s,m,xl)。但并非所有对象都具有相同的大小。我以这样的形式填写此字段=>
->add('size', 'choice', array('choices' => array('xs' => 'XS', 's' => 'S', 'm' => 'M', 'l' => 'L', 'xl' => 'XL'), 'multiple' => true, 'expanded' => true))
所以现在我想要另一种形式,用户可以选择一个可用的大小(对象)。 类型实体在我的情况下不起作用,因为我不寻找完整的实体。
我试试这个
$builder->add('size', 'choice', array(
'class' => 'MyWebshopBundle:Size',
'property' => 'name',
'expanded' => false,
));
但它没有用,所以如果你有一个想法,我真的很感激!
答案 0 :(得分:1)
好的,我会通过根据相关实体的尺寸关系创建某种股票计数来推动这个metta数据。
然后在表单中执行类似
的查询构建器 $builder->add('sizes', 'entity', array(
'class' => 'MYBUNDLE:Sizes',
'query_builder' => function(EntityRepository $er) use ($thisEntity) {
return $er->createQueryBuilder('s')
->innerJoin('s.clothing', 'c')
->where('c = :entity')
->andWhere('s.stock > :stock')
->setParameters(['entity' => $thisEntity, 'stock' => 0])
->orderBy('s.size', 'ASC');
},
));
现在显然有一个缺少的联接,但你应该得到要点