0

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

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 }}

有没有更好/更清洁的方法来做到这一点?

4

1 回答 1

1

创建您自己的存储库方法而不是使用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
于 2013-09-16T08:59:16.063 回答