我创建了一个可以从 volt 访问的自定义函数。该函数似乎工作正常,但我无法设法将变量发送到该函数。它将变量作为文本而不是其值发送。
树枝功能:
$volt->getCompiler()->addFunction('getusergroup', function ($user) {
return \Models\User::getUserGroup($user);
});
模型中的函数:
public static function getUserGroup($user) {
return UserGroup::find(array('conditions' => 'user_id = ' . $user));
}
Twig 中调用该函数的行:
{% for member in getusergroup(staff.id) %}
{{ member.Group.name }}
{% endfor %}
我得到的错误:
'解析时'staff->id'之前扫描错误:SELECT
[模型\用户组].* 来自 [模型\用户组] 其中 user_id =
$staff->id (78)' (长度=131)
正如你所看到的,而不是$staff->id
作为一个整数,它是文本。
如何将实际 ID 发送到函数?
顺便说一句,我将 twig 与 Phalcon 结合使用,并按照本文中的说明进行操作:http://phalcontip.com/discussion/60/extending-volt-functions http://phalcontip.com/discussion/60/extending-volt-functions
如果你倾倒$user
在你的方法内部public static function getUserGroup($user)
,您将收到这个$员工->id,但你实际上想要类似的东西42.
为了避免这种情况,请像这样注册 Volt 函数:
$volt->getCompiler()->addFunction('getusergroup', function ($resolvedArgs, $exprArgs) {
return 'Models\User::getUserGroup(' . $resolvedArgs . ')';
});
更多信息:扩展 Volt 功能 https://docs.phalconphp.com/en/latest/reference/volt.html#id1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)