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 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探