Symfony2:如何显示选择字段文本?

时间:2015-06-02 02:21:32

标签: php symfony

我首先生成一个学说CRUD文件。 此表单有一个选项字段,其中包含选项值和名称。 newAction和updateAction使用它。 但index(list)Action显示原始值,而不是名称。 如何在index.html.twig中显示选项名称的最佳方式?

SampleFormType.php

params.require(:profile).permit(:delivery_days)

index.html.twig

$builder->add('name')
    ->add('isActive', 'choice', array(
        'choices' => array(false => 'Inactive', true => 'Active'),
        'expanded' => true,
        'multiple' => false,
    ));

Shoud我是否对枝条扩展进行过滤或将值转换为控制器中的名称?

1 个答案:

答案 0 :(得分:0)

有很多不同的方法可以做到这一点。一个简单的是基本的条件

{{ entity.isActive ? 'Active' : 'Inactive' }}

但如果您需要在多个地方使用此值,则可能会很快违反DRY

我认为twig扩展应该保留给那些不是特定于域的东西。您可以使用macros,但这些通常也可以用于其他目的。

更具架构性的想法是根本不将Entity对象发送到视图。在良好的MVC分离系统中,视图模型不会直接交互。

考虑Symfony如何处理复杂对象(如forms)的视图 - 您可以为您的实体采用类似的模式。您甚至可以考虑使用Fractal之类的东西,它是专为超媒体API设计的,但绝对可以用于视图对象。