我有一个自定义函数被添加到 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
参数作为 true 传递,但显然我没有正确执行。user_data.cycle
我还尝试将我的电话更改为:
{{ 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,但它并没有真正涵盖参数。