Symfony & TWIG:模板目录的路由无法正常工作



我是Symfony的新手,我已经创建了许多trick-html模板和这个函数来在我的控制器中路由:

/**
* @Route("/{path}")
*/
public function renderTemplate($path) {
return $this->render('/'.$path.'/index.html.twig');
}
?>

renderTemplate((函数适用于所有一级文件夹,但不适用于子目录文件,因为它似乎在"/"之后插入。我不想写几十个新的Route函数。

如何实现所有站点,包括用"/"分隔的子目录?

什么是安全的做法和简单的解决方案?

我的小树枝模板文件夹的结构如下:模板文件夹

@Route是您的URL,而不是文件路径
Symfony(3.4(中的默认路径是app/Ressources/view/

因此,如果你想达到app/Ressources/view/default/index.html.twig,你可以这样做:

return $this->render('default/index.html.twig');

我刚刚在Symfony文档中找到了答案。

显然,您可以在变量中允许"/",如下所示:

use SymfonyComponentRoutingAnnotationRoute;
class DefaultController
{
/**
* @Route("/share/{token}", name="share", requirements={"token"=".+"})
*/
public function share($token)
{
// ...
}
}

我把我所有的小树枝模板命名为"index.html.titch",并把它们放在我的模板文件夹中相应的文件路径中,现在我的功能在每个网站上都运行得很顺利。

稍后我可能不得不更改它来处理个人请求,但这是一个方便的短期解决方案,可以通过简单美观的链接查看我的所有页面,并且在我的控制器中只有一个路由功能。

最新更新