[英]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.