Zend Framework 2 сопоставляет текущий URL с маршрутом

Я пытаюсь сопоставить текущий URL-адрес пользователя с маршрутом и вывести «активный» класс, если маршрут соответствует:

<?php if($this->url() == $this->url('dashboard')) echo "class='active'" ?>

Это работает на существующих маршрутах. Однако это испортит маршрутизацию 404; если я иду по несуществующему маршруту, т.е. localhost/someurl, я получаю:

Fatal error: Uncaught exception 'Zend\View\Exception\RuntimeException' with message 'No RouteMatch instance provided'

Каков наилучший способ сделать это?


person Ethan    schedule 01.11.2013    source источник
comment
с 404 routemath не установлен. Как насчет перехвата исключения?   -  person E Ciotti    schedule 04.11.2013


Ответы (1)


Вы пытаетесь:

Контроллер:

public function dashboardAction(){
    return new ViewModel(array(
            'dashboard' => true,
    ));
}

Вид:

<div class="<?php echo $this->dashboard ? 'active' : ''?> other-class">Dashboard</div>

Удачи. :D

person Luong Cuong    schedule 01.11.2013
comment
Это работает для представления панели инструментов, но я визуализирую свою навигацию за пределами представления панели инструментов. - person Ethan; 01.11.2013
comment
Попробуйте: $this-›layout()-›setTemplate('tpl-path/tpl-name', array('dashboard' =› true)); Навигация - person Luong Cuong; 01.11.2013