我知道这是可能的,但我不知道从哪里开始。我的主要麻烦是弄清楚如何设置表单类。
我的实体:
公式(id、代码、名称、公式颜色)
FormulaColor(公式、颜色、百分比)
颜色(id、代码、名称、公式颜色)
我想显示给定公式的多项选择清单,该公式显示表格网格中的每种颜色。网格将有一列显示代码、名称和每种颜色的复选框。不过,这些可能不是重要的细节。用户应该能够选中复选框并在提交和持久化时将选中的复选框添加到 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()
我猜这与它不是正常的many-to-many
关系有关。我不知道如何解决这个getPercentage()
异常
更新
我还没有机会尝试,但我明天会的。我认为这可能是我的问题的答案:http: //www.prowebdev.us/2012/07/symfnoy2-many-to-many-relation-with.html
我没有想过在我的公式实体中添加一个修改器和访问器来直接处理颜色。