我已经创建了一个枝条扩展,使用一些变量渲染视图,但是我有这个错误
An exception has been thrown during the rendering of a template ("Notice: Array to string conversion")
in :Backend\twig:activate.html.twig at line 1.
这是类扩展:
namespace AppBundle\Twig;
class ActivateExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('activate', array($this, 'booleanFilter'), array('is_safe' => array('html'),
'needs_environment' => true)),
);
}
public function booleanFilter(\Twig_Environment $twig, $var1, $var2)
{
return $twig->render(':Backend/twig:activate.html.twig', array(
'var1' => $var1,
'var2' => $var2
));
}
public function getName()
{
return 'activate_extension';
}
}
这是要点数的观点:
//test
{{ var1 }}<br>
{{ var2 }}
这就是在另一个视图中调用过滤器的方法:
{{ entity.activate|activate('test var1', 'test var2') }}
答案 0 :(得分:1)
请参阅有关Filters的TWIG开发人员指南:
当被Twig调用时,PHP可调用接收到的左侧 过滤器(在管道之前|)作为第一个参数和额外的 传递给过滤器的参数(在括号()内)作为额外的参数 参数。
因此,php函数的第一个参数是entity.activate
的值,可能是错误的数组,然后其他参数作为参数传递。例如,您应该按照以下步骤更改过滤器:
public function booleanFilter(\Twig_Environment $twig, $activate, $var1, $var2)
{
return $twig->render(':Backend/twig:activate.html.twig', array(
'var1' => $var1,
'var2' => $var2
));
}
希望这有帮助。对不起,我对twig功能的评论