将变量从伏特发送到自定义函数
Sending variable from volt to custom function
我创建了一个可以从伏特访问的自定义函数。该函数似乎工作正常,但我无法将变量发送给该函数。它将变量作为文本而不是其值发送。
树枝函数:
$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 %}
我得到的错误:
'Scanning error before 'staff->id' when parsing: SELECT
[Models\UserGroup].* FROM [Models\UserGroup] WHERE user_id =
$staff->id (78)' (length=131)
如您所见,$staff->id
不是整数,而是文本。
如何将实际 ID 发送到函数?
顺便说一句,我将 twig 与 Phalcon 结合使用,并按照本文中的说明进行操作:http://phalcontip.com/discussion/60/extending-volt-functions
如果您在方法 public static function getUserGroup($user)
中转储 $user
,您将收到此 $staff->id,但您实际上想要的是 42.
要避免这种情况,请像这样注册 Volt 函数:
$volt->getCompiler()->addFunction('getusergroup', function ($resolvedArgs, $exprArgs) {
return 'Models\User::getUserGroup(' . $resolvedArgs . ')';
});
的更多信息
我创建了一个可以从伏特访问的自定义函数。该函数似乎工作正常,但我无法将变量发送给该函数。它将变量作为文本而不是其值发送。
树枝函数:
$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 %}
我得到的错误:
'Scanning error before 'staff->id' when parsing: SELECT [Models\UserGroup].* FROM [Models\UserGroup] WHERE user_id = $staff->id (78)' (length=131)
如您所见,$staff->id
不是整数,而是文本。
如何将实际 ID 发送到函数?
顺便说一句,我将 twig 与 Phalcon 结合使用,并按照本文中的说明进行操作:http://phalcontip.com/discussion/60/extending-volt-functions
如果您在方法 public static function getUserGroup($user)
中转储 $user
,您将收到此 $staff->id,但您实际上想要的是 42.
要避免这种情况,请像这样注册 Volt 函数:
$volt->getCompiler()->addFunction('getusergroup', function ($resolvedArgs, $exprArgs) {
return 'Models\User::getUserGroup(' . $resolvedArgs . ')';
});
的更多信息