2014-10-28 78 views
0

我有一个大小字段(这是一个数组)具有不同大小可用的实体对象。 (例如:s,m,xl)。但并非所有对象都具有相同的可用大小。我填写这样的形式=>Symfony2如何从实体的特定字段获取数据以创建表单?

->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, 
)); 

,但它不工作,所以如果你有一个想法,我真的很感激!

回答

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'); 
       }, 
    )); 

进行查询构建器现在很明显是有缺失的加入,但你应该得到的要点

+0

哇,我们可以做到这一点。这个框架每天都让我印象深刻。 Thx为你的答案我会尝试 – hadesMM 2014-10-28 14:26:58

相关问题