Установить текущий только один элемент с RegexVoter из KnpMenu

Я использую regexVoter из knpMenu, как это

//This is on my createMenuAction
$this->matchingRoute($menu);

/**
* @param $menu
*
* @return bool
*/
private function matchingRoute($menu)
{
foreach ($menu->getChildren() as $child) {
$childRegex = $child->getAttribute('regex');

$voter = new RegexVoter($childRegex);
$voterTest = $voter->matchItem($child);

if ($voterTest == true && $this->request->getUri()) {
$child->setCurrent(true);
} else {
$child->setCurrent(false);
}
}
}

Это работает, но устанавливаю текущий класс для всех дочерних элементов с атрибутами регулярного выражения. Этот избиратель сравнивает регулярные выражения childs с их маршрутом, чтобы он все время становился правдой.

Я пытался добавить return true;

if ($voterTest == true && $this->request->getUri()) {
$child->setCurrent(true);
return true;
} else {
$child->setCurrent(false);
}

Но это устанавливает текущий класс для первого потомка, который возвращает true с помощью regexVoter.

Должен ли я проверить это регулярное выражение в отношении текущего маршрута с этим избирателем?

Как я могу использовать этого избирателя, чтобы установить текущий класс на хорошего ребенка?

Спасибо,

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]