我首先生成一个学说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我是否对枝条扩展进行过滤或将值转换为控制器中的名称?
答案 0 :(得分:0)
有很多不同的方法可以做到这一点。一个简单的是基本的条件
{{ entity.isActive ? 'Active' : 'Inactive' }}
但如果您需要在多个地方使用此值,则可能会很快违反DRY。
我认为twig扩展应该保留给那些不是特定于域的东西。您可以使用macros,但这些通常也可以用于其他目的。
更具架构性的想法是根本不将Entity对象发送到视图。在良好的MVC分离系统中,视图和模型不会直接交互。
考虑Symfony如何处理复杂对象(如forms)的视图 - 您可以为您的实体采用类似的模式。您甚至可以考虑使用Fractal之类的东西,它是专为超媒体API设计的,但绝对可以用于视图对象。