Вызов функции PHP из шаблона Twig
В моем контроллере есть функция, которая возвращает массив объектов, поэтому в моем шаблоне ветки я делаю это для перебора элементов:
{% for groupName, entity in items %}
{% for element in entity %}
{{ element.getLabel }}
{% endfor %}
{% 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>';
}
Это'Возможно ли получить доступ к функции PHP из шаблона Twig, чтобы получить все возможные комбинации элементов в сущности? Как?
** ОБНОВИТЬ **
Это функция, которая возвращает объекты, обработанные шаблоном Twig:
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;
}