Twig 将变量从volt发送到自定义函数

Twig 将变量从volt发送到自定义函数,twig,phalcon,volt,Twig,Phalcon,Volt,我已经创建了一个自定义功能,可以从volt访问。该函数似乎工作正常,但我无法将变量发送到该函数。它将变量作为文本而不是其值发送 细枝功能: $volt->getCompiler()->addFunction('getusergroup', function ($user) { return \Models\User::getUserGroup($user); }); {% for member in getusergroup(staff.id) %} {{ memb

我已经创建了一个自定义功能,可以从volt访问。该函数似乎工作正常,但我无法将变量发送到该函数。它将变量作为文本而不是其值发送

细枝功能:

$volt->getCompiler()->addFunction('getusergroup', function ($user) {
    return \Models\User::getUserGroup($user);
});
{% for member in getusergroup(staff.id) %}
    {{ member.Group.name }}
{% endfor %}
模型中的函数:

public static function getUserGroup($user) {
    return UserGroup::find(array('conditions' => 'user_id = ' . $user));
}
Twig中要调用函数的行:

$volt->getCompiler()->addFunction('getusergroup', function ($user) {
    return \Models\User::getUserGroup($user);
});
{% for member in getusergroup(staff.id) %}
    {{ member.Group.name }}
{% endfor %}
我得到的错误是:

'解析时在'staff->id'之前的扫描错误:选择 [Models\UserGroup].*来自[Models\UserGroup],其中用户\u id= $staff->id(78)'(长度=131)

如您所见,它不是一个整数,而是一个文本

如何向函数发送实际ID


顺便说一句,我将twig与Phalcon结合使用,并按照本文中的说明进行操作:

如果您在方法
公共静态函数getUserGroup($user)
中转储
$user
,您将收到这个$staff->id,但实际上您需要42

为避免出现这种情况,请按如下方式设置Volt功能:

$volt->getCompiler()->addFunction('getusergroup', function ($resolvedArgs, $exprArgs) {
    return 'Models\User::getUserGroup(' . $resolvedArgs . ')';
});

更多关于

的信息,我永远也猜不到这种逻辑,把所有的都放在引号里。但它像一个魅力。Thanx NikolayThat’s why we’s documentation:)没有在谷歌上找到该页面,这就是为什么有很多Thanx;)