我创建了一个 Twig 扩展,它返回我拥有的所有博客的列表。这个列表是我在我的树枝模板中循环的一个数组。
这是我的扩展:
<?php
// src/OSC/BlogBundle/Twig/BlogsListExtension.php
namespace OSC\BlogBundle\Twig;
class BlogsListExtension extends \Twig_Extension
{
public function getFunctions()
{
return array(
'blogsList' => new \Twig_Function_Method($this, array($this, 'blogsList')),
);
}
public function blogsList()
{
$em = $this->getDoctrine()
->getManager();
$repository = $em
->getRepository('OSCBlogBundle:Blog');
$blogs = $repository->findBy(array('visibleState' => true));
usort($blogs, array("\OSC\BlogBundle\Controller\BlogController", "orderBlogByTitle"));
return $blogs;
}
public function getName()
{
return 'osc_BlogsListExtension';
}
}
这是我在 services.yml 中添加的内容
services:
osc_blog.blogsList_extension:
class: OSC\BlogBundle\Twig\BlogsListExtension
tags:
- { name: twig.extension }
在我的树枝模板中,我想做以下事情:
<ul>
{% for blog in blogsList()|sort %}
<li><a href="{{ path('osc_blog_homepage', {'blogId': blog.id })}}"><span>{{ blog.title }}</span></a></li>
{% endfor %}
</ul>
我收到以下错误:
编译模板时抛出异常(“注意:数组到字符串的转换
最后,我的问题是如何将数组传递给变量以便在树枝模板中循环遍历它?