我知道这是可能的,但我迷失在哪里开始。我的主要麻烦是弄清楚如何设置表单类。
实体
公式(id,code,name,formulaColors)
FormulaColor(公式,颜色,百分比)
颜色(id,code,name,formulaColors)
我想显示给定公式的多项选择核对表,该公式显示表格中的每种颜色。网格将有一列显示每种颜色的代码,名称和复选框。这些可能不是重要的细节。用户应该能够选中这些框并在提交和持久化时将其添加到Formula-> formulaColors中,最后将其添加到FormulaColor表中。此外,在构建表单时,应该已经检查已经属于公式的颜色。我认为如果没有百分比字段,FormulaColor表就是一个真正的连接表,这对我来说会更容易。
在控制器操作中,我可以访问需要为其选择颜色的公式。
我的表单类会是什么样子,至少粗略地说一下?
这是我的表单类到目前为止的样子
class ChooseColorsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('formulaColors', 'entity', array(
'class' => 'PrismPortalCommonBundle:Color',
'property' => 'code',
'expanded' => true,
'multiple' => true,
));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Prism\Portal\CommonBundle\Entity\Formula'
));
}
public function getName()
{
return 'prism_portal_adminbundle_choosecolorstype';
}
}
但是,这给了我异常“错误:在/vagrant/src/Prism/Portal/CommonBundle/Entity/Formula.php第201行调用未定义的方法Prism \ Portal \ CommonBundle \ Entity \ Color :: getPercentage() “
我猜这与它不是常规的多对多关系有关。我不知道如何处理这个getPercentage()异常
更新
我还没有机会尝试,但明天我会。我认为这可能是我的问题的答案:http://www.prowebdev.us/2012/07/symfnoy2-many-to-many-relation-with.html
我没有考虑在我的Formula实体中添加一个mutator和accessor来直接处理Color。