我像knpMenu一样使用regexVoter
//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);
}
}
}
这是有效的,但是为具有正则表达式属性的所有孩子设置了当前类。这位选民将孩子的正则表达式与他们的路线进行比较,因此它始终成为现实。
我尝试添加return true;
if ($voterTest == true && $this->request->getUri()) {
$child->setCurrent(true);
return true;
} else {
$child->setCurrent(false);
}
但是这会在第一个使用regexVoter返回true的孩子上设置当前课程。
我应该用这个选民检查这个正则表达式与当前路线吗?
我如何使用这个选民为好孩子设置当前课程?
谢谢,