我有一个自定义函数,它被添加到Twig对象中,如下所示:
...
add_filter('get_twig', array(get_class(),'add_twig_functions'));
...
public static function add_twig_functions($twig)
{
$twig->addFunction(new Twig_SimpleFunction('get_table', array(get_class(), 'get_table')));
return $twig;
}
...
public static function get_table($cycle, $visible = true, $id = null)
{
....
}
在树枝模板中,我试图这样称呼它:
{{ get_table('mth', user_data.cycle = 'Monthly', 'table-mth') }}
但是我收到了一个错误:
PHP致命错误:带有消息的未捕获异常'Twig_Error_Syntax' '参数名称必须是字符串,“Twig_Node_Expression_GetAttr” 给定
我的预期结果是,如果$visible
上下文变量等于'Monthly',user_data.cycle
参数将传递为true,但显然我没有正确执行。
我也尝试将我的电话改为:
{{ get_table('mth', (user_data.cycle = 'Monthly'), 'table-mth') }}
然而,这只是给了我:
PHP致命错误:带有消息的未捕获异常'Twig_Error_Syntax' '打开的括号未正确关闭。意外的标记 “运算符”的值“=”(“标点符号”,预期值为“)”)
是否有预期的方法将布尔表达式传递给twig函数? Timber的版本为1.1.6,因为它的价值。到目前为止,我在功能扩展方面能够找到的所有文档都在http://twig.sensiolabs.org/doc/advanced.html,但它并没有真正涵盖参数。
答案 0 :(得分:0)
嗯,这只是我记错了比较如何在twig中工作......我的印象是Twig中的=
相当于PHP ==
和==
在twig中相当于PHP的===
,但我不知道我在哪里得到了这种印象,因为它错了。
{{ get_table('mth', (user_data.cycle == 'Monthly'), 'table-mth') }}
正常工作并且符合预期。有一个毫无意义的故障排除时间。