Twig 将变量从volt发送到自定义函数
我已经创建了一个自定义功能,可以从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->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;)