symfony form builder跨一对多对多对一
我知道这是可能的,但我不知道从哪里开始。我的主要问题是弄清楚如何设置表单类 我的实体: 公式(id、代码、名称、公式颜色) 公式颜色(公式、颜色、百分比) 颜色(id、代码、名称、公式颜色) 我想显示一个给定公式的多选清单,该公式显示表格网格中的每种颜色。网格将有一列显示代码、名称和每种颜色的复选框。不过,这些可能不是重要的细节。用户应该能够选中复选框,并在提交和持久化时将复选框添加到公式->公式颜色,最终将其添加到公式颜色表中。此外,在构建表单时,应检查已属于公式的颜色。如果symfony form builder跨一对多对多对一,symfony,one-to-many,symfony-forms,many-to-one,Symfony,One To Many,Symfony Forms,Many To One,我知道这是可能的,但我不知道从哪里开始。我的主要问题是弄清楚如何设置表单类 我的实体: 公式(id、代码、名称、公式颜色) 公式颜色(公式、颜色、百分比) 颜色(id、代码、名称、公式颜色) 我想显示一个给定公式的多选清单,该公式显示表格网格中的每种颜色。网格将有一列显示代码、名称和每种颜色的复选框。不过,这些可能不是重要的细节。用户应该能够选中复选框,并在提交和持久化时将复选框添加到公式->公式颜色,最终将其添加到公式颜色表中。此外,在构建表单时,应检查已属于公式的颜色。如果FormulaCo
FormulaColor
table是一个没有百分比字段的真正的连接表,我想这对我来说会更容易
在控制器操作中,我可以访问需要为其选择颜色的公式
至少粗略地说,我的表单类是什么样子的
我的班级:
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';
}
}
然而,这给了我一个例外
错误:调用未定义的方法
Prism\Portal\CommonBundle\Entity\Color::getPercentage()中的
/vagrant/src/Prism/Portal/CommonBundle/Entity/Formula.php第201行
我猜这与它不是一种常规的多对多关系有关。我不知道如何解决这个getPercentage()
异常
更新
我还没有机会尝试,但我明天会的。我想这可能就是我问题的答案:
我没有想到在我的公式实体中添加一个变异子和访问子来直接处理颜色。你上面提供的链接对你有帮助吗@user45763@PMoubed是的,这对我很有效。