如何链接树枝模板?像这样:
<a href="Events.twig" class="btn btn-primary btn-lg square" role="button">Learn more</a>
有没有办法做到这一点,还是我必须使用URL重写?
答案 0 :(得分:2)
您可以使用模板控制器。只需添加新路由,指定模板控制器FrameworkBundle:Template:template
和twig模板。
<强> routes.yml 强>
qwerty:
path: /qwerty
defaults:
_controller: FrameworkBundle:Template:template
template: Events.twig
并将此链接更改为:
<a href="{{ path('qwerty') }}" class="btn btn-primary btn-lg square" role="button">Learn more</a>
http://symfony.com/doc/current/templating/render_without_controller.html
答案 1 :(得分:2)
你的问题在概念上存在缺陷。 Twig是一种模板语言,无法单独呈现为网页。
您可能不想直接链接到.twig
文件(事实上,.twig
文件根本不应该直接在您的公共文档根目录中访问)!相反,您需要一些PHP代码(独立脚本,或者最好是front controller route),它们在您的应用程序的上下文中呈现您的模板,并在您指定的URL处返回完全呈现的页面。
例如,在Slim框架中,您可能会执行以下操作:
// Render Twig template in route
$app->get('/events', function ($request, $response, $args) {
return $this->view->render($response, 'events.html.twig');
});
// Run app
$app->run();
有关放弃程序性意大利面条代码和使用MVC术语思考的更多信息,请参阅this article。
答案 2 :(得分:0)
如果您使用twig
,则需要解析模板,因此您无法以您尝试的方式进行链接。在Symfony 2中你会使用类似{{ path('name_of_path') }}
的东西,你需要先命名你的路线。
您可以使用带注释的name="event"
命名路线:
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
/**
* Matches /event exactly
*
* @Route("/event", name="event")
*/
public function eventAction()
{
// ...
}
在枝条模板链接中:
<a href="{{ path('event') }}">Event</a>
更多信息: http://symfony.com/doc/current/templating.html#linking-to-pages
答案 3 :(得分:0)
你做不到。进行另一个呈现Events.twig
的控制器操作,并使用path()
链接到相应的路径:
<a href="{{ path('your_route_name') }}" class="btn btn-primary btn-lg square" role="button">Learn more</a>