2013-11-01 7 views
0

Я пытаюсь соответствовать текущему URL пользователя на маршрут, и выводить «активный» класс, если маршрут матчи:Zend Framework 2 матча текущий 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' 

Что такое лучший способ пойти по этому поводу?

+0

с 404 маршрутом не установлен. А как насчет исключения? –

ответ

0

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

Контроллер:

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

Вид:

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

удачи. : D

+0

Это работает для представления панели инструментов, но я просматриваю свою навигацию за пределами панели инструментов. – Ethan

+0

Вы пытаетесь: $ this-> layout() -> setTemplate ('tpl-path/tpl-name', array (' dashboard '=> true)); [Навигация] (https://packages.zendframework.com/docs/latest/manual/en/modules/zend.navigation.quick-start.html) –