在Twig中迭代时,只显示属性名称来自对象的键

时间:2014-08-23 21:02:32

标签: symfony twig

我向Twig视图发送了一个学说结果。然后在Twig:

  {% for key, value in result|array%}
    {{key}} : {{value}}

数组过滤器是一个扩展,它使用$ result =(array)$ result将教条结果对象转换为数组;

并且... {{key}}正在渲染字段名称,但在完整的Bundle / Entity路径之前... 有没有摆脱这个前缀的想法?

提前致谢;)

2 个答案:

答案 0 :(得分:0)

一种方法是使用replace过滤器并将前缀替换为空,如果它是所有项目的公共前缀。

另一种方法是拆分已知的分隔符,例如对于类名称\,然后使用last过滤器获取最后一部分。

例如:

{{ key|split('\\')|last }}

答案 1 :(得分:0)

解决方案是从新的数组过滤器调用我的getFieldnames服务...然后替换数组中的键...也许它不是最好的选择...让我知道是否有更好的选择,我的意思更深......

 public function arrayFilter($entity) {
    $fieldnames = $this->container->getFieldnames($entity);
    if (is_object($entity)) {
        $response = (array) $entity;
        $i = 0;
        foreach ($response as $k => $v) {

            unset($response[$k]);
            $new_key = $fieldnames[$i];
            $response[$new_key] = $v;
            $i++;
        }
        return $response;
    }
    return null;
}