从Twig模板调用PHP函数

雷尼埃

我的控制器中有一个返回实体数组的函数,因此在我的树枝模板中,我这样做是要遍历元素:

{% for groupName, entity in items %}
    <ul>
        <ul>
            {% for element in entity %}
                <li>{{ element.getLabel }}</li>
                <li><input type="text" name="detail[{{ element.getId }}]" id="pd_{{ element.getId }}" /><input type="text" name="price[{{ element.getId }}]" id="pd_price_{{ element.getId }}" /><input type="text" name="stock[{{ element.getId }}]" id="pd_stock_{{ element.getId }}" /></li>
            {% endfor %}
        </ul>
    </ul>
{% endfor %}

在我的控制器中,我还具有以下PHP函数:

private function DetailCombination($arr, $level, &$result, $curr = array()) {
    for ($i = 0; $i < count($arr); $i++) {
        $new = array_merge($curr, array($arr[$i]));
        if ($level == 1) {
            sort($new);
            if (!in_array($new, $result)) {
                $result[] = $new;
            }
        } else {
            combinations($arr, $level - 1, $result, $new);
        }
    }
}

我可以这样称呼它:

for ($i = 0; $i < count($arr); $i++) {
    $this->DetailCombination($arr, $i + 1, $result);
}

// TEST
foreach ($result as $arr) {
    echo join(" ", $arr) . '<br>';
}

是否可以从Twig模板访问PHP函数,以获取实体中元素的所有可能组合?怎么样?

**更新**

这是返回由Twig Template处理后的实体的函数:

private function getVariations($category_id) {
    $items = array();

    $em = $this->getDoctrine()->getManager();
    $entityCategory = $em->getRepository('CategoryBundle:Category')->find($category_id);

    foreach ($entityCategory->getProductDetails() as $entity) {
        if ($entity->getToProduct() == 1) {
            foreach ($entity->getDetailGroup() as $group) {
                if (!array_key_exists($group->getName(), $items)) {
                    $items [$group->getName()] = array();
                }

                $items [$group->getName()] [] = $entity;
            }
        } 
    }

    return $items;
} 
创建问题

无法直接访问Twig内部的任何PHP函数。

您可以做的是编写一个Twig扩展。常见的结构是,编写带有某些实用程序功能的服务,编写Twig扩展作为从twig访问服务的桥梁。Twig扩展将使用该服务,您的控制器也可以使用该服务。

看看:http : //symfony.com/doc/current/cookbook/templating/twig_extension.html

干杯。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Twig模板调用PHP函数

来自分类Dev

在车把模板中调用php函数

来自分类Dev

在车把模板中调用php函数

来自分类Dev

使用PHP模板代替Twig

来自分类Dev

从模板多次调用的函数

来自分类Dev

模板函数未调用

来自分类Dev

从模板调用组件函数

来自分类Dev

调用模板成员函数

来自分类Dev

Smarty:是否可以在模板内调用PHP函数(从controller类)?

来自分类Dev

页面模板中的Ajax调用的PHP无法使用Wordpress函数

来自分类Dev

如何从PHP调用Twig扩展过滤器或函数(控制器/服务/其他Twig扩展等)?

来自分类Dev

从模板函数调用静态模板方法

来自分类Dev

模板模板类,如果存在则调用函数

来自分类Dev

模板函数调用歧义错误

来自分类Dev

无法调用的模板构造函数?

来自分类Dev

使用模板的条件函数调用

来自分类Dev

在模板中调用Flask函数

来自分类Dev

如何减少对模板函数的调用

来自分类Dev

用于调用函数的C ++模板

来自分类Dev

使用模板调用类的函数

来自分类Dev

模板参数中的函数调用

来自分类Dev

带模板参数的函数调用

来自分类Dev

歧义调用-模板化函数

来自分类Dev

无法调用的模板构造函数?

来自分类Dev

从模板多次调用该函数

来自分类Dev

从Jinja模板调用Python函数

来自分类Dev

调用模板函数时出错

来自分类Dev

如何从kendoListView模板调用函数

来自分类Dev

从C文件调用模板函数