我正在寻找伏特中的in_array函数等价。 还有另一种方法吗?
{% for modelObj in modelList %}
{% if modelObj.getId() in modelIdCheckedList %}
{{ check_field('id[]', 'value':modelObj.id, 'checked': true) }}
{% else %}
{{ check_field('id[]', 'value':modelObj.id, 'checked': null) }}
{% endif %}
{% endfor %}
我需要做这样的事情
{{ check_field('id[]', 'value':modelObj.id, 'checked': in_array(modelObj.getId(), modelIdCheckedList )) }}
你能帮帮我吗?
答案 0 :(得分:0)
有两种方法可以实现这一目标。
将in_array
注册为Volt理解的功能。在Volt注册中,您需要将函数添加到编译器,如下所示:
$volt = new Phalcon\Mvc\View\Engine\Volt($view, $diContainer);
$volt->setOptions( .... );
$volt->getCompiler()->addFunction(
'in_array',
function ($parameters) {
return 'in_array(' . $parameters . ')';
}
);
您还可以注册PHP函数扩展,这将允许所有PHP函数在Volt中工作。
创建您的扩展程序
class PhpFunctionExtension
{
/**
* This method is called on any attempt to compile a function call
*/
public function compileFunction($name, $arguments)
{
if (function_exists($name)) {
return $name . "(". $arguments . ")";
}
}
}
在Volt编译器中注册
$volt = new Phalcon\Mvc\View\Engine\Volt($view, $diContainer);
$volt->setOptions( .... );
$volt->getCompiler()->addExtension(new PhpFunctionExtension());
https://docs.phalconphp.com/en/latest/reference/volt.html#extending-volt https://docs.phalconphp.com/en/latest/reference/volt.html#extensions
答案 1 :(得分:0)
使用in
运算符:
{{ modelObj.getId() in modelIdCheckedList }}
所以您可以执行以下操作:
{{ check_field('id[]', 'value': modelObj.id, 'checked': modelObj.getId() in modelIdCheckedList }}