SonataAdmin - 每个表单的自定义表单模板

时间:2015-01-13 15:02:10

标签: php forms symfony sonata-admin sonata

我遇到了Sonata Admin Bundle的问题。我想做的是:

在我的表单中的某些标签之前添加一些文字。例如:

  

图像的分辨率必须为..x ..

例如,我有一个这样的表格:

protected function configureFormFields(FormMapper $formMapper)
{
     $formMapper
         ->add('locale', 'choice', array(
             'choices'   => array('nl' => 'NL', 'en' => 'EN'),
             'required'  => true,
         ))
         ->add('pageid.tag', 'text', array('label' => 'Tag'))
         ->add('description', 'text', array('label' => 'Beschrijving'))
         ->add('content', 'textarea', array('label' => 'Tekst', 'attr' => array('class' => 'ckeditor')))
         ->add('files', 'file', array('required' => false, 'multiple' => true))
    ;
}

现在我想在文件输入字段之前添加一些文字。

我现在所做的是:

  • 将此添加到我的config.yml(重载模板/表单配置选项):

    sonata_doctrine_orm_admin:
        # default value is null, so doctrine uses the value defined in the configuration
        entity_manager: ~
    
        templates:
            form:
                - MurisBundle:PageAdmin:form_admin_fields.html.twig
    

但是这将用于每个表单,我是否可以为特定表单设置特定的表单模板?

2 个答案:

答案 0 :(得分:1)

您可以在管理类中指定表单模板,覆盖getFormTheme方法。 将此代码添加到您的管理类。

public function getFormTheme()
{
     return array_merge(
         parent::getFormTheme(),
         array('MurisBundle:PageAdmin:form_admin_fields.html.twig')
     );
} 

答案 1 :(得分:0)

getPictureUrlFull()。'“alt =”'。$ campaign-> getPicture()。'“style =”margin-top:10px;“/>使用”帮助“

protected function configureFormFields(FormMapper $formMapper)
{
     $formMapper
         ->add('locale', 'choice', array(
             'choices'   => array('nl' => 'NL', 'en' => 'EN'),
             'required'  => true,
             'help'      => '<img src="'.$entity->getPictureUrlFull().'" alt="'.$entity->getPicture().'" />'               
         ))

)