我是一个新手,这是我的第一个问题,所以请对我好一点:)
在我的Symfony 2项目中,我想从我的控制器传递一个$user对象到twig模板。该对象包含呈现视图的所有相关信息(如用户名、activepage…)。我的问题是,我也想把mysqli数据库查询的结果在对象内。为了能够在我的分支模板中检索它,我需要在传递之前在控制器中序列化结果对象(数组?)。不幸的是,我不知道如何在twig中反序列化该对象(没有twig过滤器可用)。
我的问题:
- 这实际上是一个优雅的方式,还是我应该把数组中的所有对象传递给模板?
- 是否可以在用户类中编写一个反序列化函数,我可以在twig模板中调用?
- 性能可以吗?
- 有经验的人如何做到这一点?
谢谢你的帮助!
用你的数据在你的控制器中建立一个数组,并像这样呈现给你的模板:
return $this->render('yourbundle:example:index.html.twig', array(
'myArray' => $array,
然后在你的模板中,你可以像这样访问myArray
:
{% for data in myArray %}
...
{% endfor %}
我做了一个这样的服务参数包,我可以在这个过程中添加参数/值,并渲染每一个参数,这样我就可以在javascript中使用它们。
为此,我不得不主要使用JsonSerializable php接口(php 5.4+)和json_decode树枝过滤器。
我认为这是一个很好的方式来传递变量到js像这样,因为你可以使用这个服务时,构建您的项目