donglv6960 2016-01-29 13:40
浏览 108
已采纳

在Formbuilder :: add()中配置EntityType时访问类的属性和方法

I`ve got a dropdown list in my Symfony2 form like this:

$builder->add('categories','entity', array(
            'class'     => 'MyBundle:Myentity',
            'property'  => 'name',
            'label'     => 'Mylabel',
            'expanded'  => false,
            'multiple'  => false,
            'label_attr'   =>  array ( 'class'      => 'control-label' ),
            'attr'   =>  array  (   'class'         => 'form-control',
                                    'placeholder'   => 'Placeholder',
                                    'title'         => "Mytitle",
                                    'data-toggle'   => 'tooltip',
                                    'data-myidfromDB'   => '????',
                                    'data-mynamefromDB'=>'????' etc. )));

So I am getting a list of MyBundle:Myentity objects and when I choose one I want to show all its properties (like ID, name, etc.) which are stored in my DB and described in Entity class, in different html data-* fields. If I select another one from the list I want to see all information related to my newly selected option in HTML (to change dynamically). Any ideas how to do that?

  • 写回答

2条回答 默认 最新

  • duanbing8817 2016-01-30 01:45
    关注

    Since Symfony 2.7 you can set the option choice_attr to ChoiceType and set it a callable receiving the choice as an argument.

    EntityType inherits this option and the choice in that case is the instantiated entity, so you can write something like :

    $builder->add('categories','entity', array(
        'class' => 'MyBundle:MyEntity',
        'property' => 'name',
        'label' => 'Mylabel',
        'attr' => array('class' => 'form-control'),
        'label_attr' => array('class' => 'control-label'),
        'choice_attr' => function (\AppBundle\Entity\MyEntity $myEntity) {
            return array(
                'data-private-property' => $entity->getPrivateProperty(),
                'data-some-value' => $entity->someMethod(),
            );
        },
    );
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败