0

我有一个 url 以这种方式重绘 $ this->view->url($item['action']) 但是这个变量可以包含系统中的路由,我该如何检查,检查这个路由是否存在在 ZF2 中?

4

1 回答 1

0

我认为的一种选择是将导航对象传递给视图

在控制器中:

return [
    'navigation' => $this->navigation,
];

鉴于:

if($this->navigation->findOneBy('route', $item['action'])) {
    $url = $this->view->url($item['action']);
}

另一种选择是将调用包含在 try/catch 中。如果函数抛出异常,则路由不存在

try {
    $url = $this->view->url($item['action']);
} catch(Zend\Router\Exception\RuntimeException $e) {
    $url = '';
}
于 2019-03-16T12:12:55.263 回答