Workaround
:现在从表单到文本的 cnhanging 表单父级做到了。
我刚刚创建了一个自定义字段类型,其父项是表单。
有谁知道我怎样才能获得正确的property_path?我的意思是,在 MyFieldType 中,我想访问使用 my_field_type 字段的 MyFormType 的属性,这样我就可以动态地设置正确的 property_path。
这是我的自定义字段类型。在下面的类中,想要动态地设置ColorPaletteField
用作 property_path 值的 Form Type 属性。
命名空间 WE\BobbyWebAppBundle\Form\Field; 使用 Symfony\Component\Form\AbstractType; 使用 Symfony\Component\Form\FormView; 使用 Symfony\Component\Form\FormInterface; 使用 Symfony\Component\OptionsResolver\OptionsResolverInterface; 使用 Symfony\Component\PropertyAccess\PropertyAccess; 使用 Symfony\Component\Form\FormBuilderInterface; 使用 Symfony\Component\Form\Extension\Core\EventListener\TrimListener; 类 ColorPaletteField 扩展 AbstractType { 公共函数 setDefaultOptions( OptionsResolverInterface $resolver ) { $resolver->setDefaults(数组( '映射' => 真, 'error_bubbling' => 假, '颜色' => 数组() ) ); } /** * 将帮助传递给视图 * * @param 表单视图 $view * @param FormInterface $form * @param 数组 $options */ 公共函数 buildView(FormView $view, FormInterface $form, array $options) { $parentData = $form->getParent()->getData(); 如果(空!== $parentData) { $accessor = PropertyAccess::getPropertyAccessor(); $defaultColor = $accessor->getValue( $parentData, 'calendar_color' ); } 否则 { $defaultColor = null; } if(array_key_exists('colors', $options)) { $colors = $options['colors']; } 否则 { $colors = array(); } $view->vars['colors'] = $colors; $view->vars['defaultColor'] = $defaultColor; } 公共函数 getParent() { 返回“表格”; } 公共函数 getName() { 返回“颜色调色板”; } }
先谢谢了,