Exception 测试细枝模板中是否存在路由(Symfony 2)
我想从我的数据库中生成一个导航,在那里我将路线的名称存储为链接目标。 我的控制器只是从数据库中获取所有必要的导航条目,并返回直接在我的小树枝模板中使用的行Exception 测试细枝模板中是否存在路由(Symfony 2),exception,symfony,path,twig,routes,Exception,Symfony,Path,Twig,Routes,我想从我的数据库中生成一个导航,在那里我将路线的名称存储为链接目标。 我的控制器只是从数据库中获取所有必要的导航条目,并返回直接在我的小树枝模板中使用的行 /** * @Route("/") * @Template() */ public function myAction() { $em = $this->getDoctrine()->getManager(); $navi = $em->getRepository('myBundle:Navigation')
/**
* @Route("/")
* @Template()
*/
public function myAction() {
$em = $this->getDoctrine()->getManager();
$navi = $em->getRepository('myBundle:Navigation')->findAll();
return array("navi" => $navi);
}
因此,可能不存在导致错误500的路由
我需要一个方法来检查命名路由是否存在。如果路径('routeName')被定义为%},我试图用{%来测试它。。。{%endif%}
但这不起作用
AFAIK我的控制器可以捕获Twig异常,但我只希望Twig忽略无效的导航条目。有什么想法吗?您可以自定义细枝功能(有关详细信息,请查看链接)。用于检查给定名称是否为有效路由的函数:
function routeExists($name)
{
// I assume that you have a link to the container in your twig extension class
$router = $this->container->get('router');
return (null === $router->getRouteCollection()->get($name)) ? false : true;
}
但我不确定以这种方式(在数据库中)处理导航是否是个好主意。也许你最好用点别的?谢谢,现在它可以用了!这对我帮助很大。下一步是缓存导航条目以减轻数据库的负载。
returnnull===$router->getRouteCollection()->get($name)代码>足够好了。:)@HelpNeeder我会说返回null!==$路由器->…
:)根据这条评论,最好抓住像@imanali这样的例子:可能重复的