Symfony的选择列表在视图中使用twig作为ul

时间:2013-02-22 15:00:43

标签: list symfony twig choice

我通常将用户可选属性映射到相应的类,如此

class Person {
  /**
   * @ORM\ManyToMany(targetEntity="HobbyClass")
   */
   private $hobby
}

class HobbyClass{
   private $name; // e.g. "Outdoors"
} 

要创建或编辑实体,我只需在表单中使用实体类型表单字段。 然后,当我需要用树枝显示实体视图时,我就这样做:

    {% for item in person.hobby %}
        <li>{{ item.name }}</li> {# e.g. "Outdoors" #}
    {% endfor %}

但这次我正在使用实现ChoiceListInterface的类Selectables

class Entity {
   /**
    * @var array
    */
    private $properties
}

class Selectables implements ChoiceListInterface {
  ...
}

然后我用选择类型表单字段创建和编辑这个实体 当然,在树枝上,我得到钥匙,而不是之前的财产名称

    {% for item in entity.properties %}
        <li>{{ item }}</li> {#e.g. "property_key", whereas its name is "Sports"#}
    {% endfor %}

问题是数据只是一个只在表单中有意义的键数组。但我需要在实体视图中将其显示为人类可读。

使用ChoiceListInterface的原因是选择列表不会使用CRUD更新,我可以在代码中维护它。使用起来需要的工作量少一点,并且不需要连接和数据库表。

对此最好的解决办法是什么:

  • 一个。使用像之前的表和关联
  • 湾代码自定义twig扩展,它将获得相应的值 来自ChoiceListInterface类
  • ℃。使用选择列表并使密钥可翻译,以便他们 显示为属性名称
  • d。别的什么

由于

0 个答案:

没有答案