繁体   English   中英

通过树枝中的对象名称从数组中获取对象

[英]Getting an object from an array by the objects name in twig

我想将模板文本存储在数据库表中。

Name     |    Text                         |  .....
----------------------------------------------------
Title    | My very own Blog                | ......
Intro    | Hello stranger, this is my blog |

每个项目都是一条记录,我想直接在Twig中访问每个项目。

目前,我的代码是:

public function indexAction()
{
  $ObjArr=$EntityManager->getRepository('myBundle:tplitems')->findAll();

  foreach($ObjArr as $obj) {
    $tplitems[$obj-getName()]=$obj;
  }

  return $this->render('myBundle::index.html.twig',array('tplitems'=>$tplitems,))
}

这让我在Twig中写道:

{{ tplitems.title.text }}

有没有更好/更干净的方法可以做到这一点?

创建您自己的存储库方法,而不是使用findAll() ,并使用按功能分类的索引。 引用文档

INDEX BY构造并不能直接转换为SQL,但会影响对象和数组的水合。 在每个FROM和JOIN子句之后,您可以指定应在结果中对此类进行索引的字段。 默认情况下,结果会以数字键(以0开头)递增。但是,使用INDEX BY,您可以指定任何其他列作为结果键,但实际上仅对主字段或唯一字段有意义:

SELECT u.id, u.status, upper(u.name) nameUpper FROM User u INDEX BY u.id
JOIN u.phonenumbers p INDEX BY p.phonenumber

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM