我想在重定向链接时将变量设置为twig,就像使用渲染方法时一样:
return $this->render('socialBundle::index.html.twig',array(
'id' => $id
));
它会将Id变量设置为twig:{{id}}
return $this->redirect($this->generateUrl("tuto_animaux_voir", array(
'id' => $id
)));
它会将Id变量设置为链接:xxxxx.com/Id,我希望它在重定向时将此变量渲染为twig ...
抱歉这个糟糕的概念和语言,因为我不是英格兰,这是我在stackoverflow中的第一个问题,
等待回应,谢谢
答案 0 :(得分:1)
如果您想在树枝模板中放置链接或根据条件从控制器重定向,我不太明白您想要做什么。如果你能详细说明你想做什么,我想我可以帮助你。
更新(解决方案)
您可以使用"转发到另一个控制器"而不是使用"重定向"并从那里将变量发送到树枝模板
答案 1 :(得分:0)
在你的情况下,'tuto_animaux_voir'是与控制器动作相关的路线。给定id将作为action参数提供,因此您可以像这样传递:
public function fooAction($id)
{
return $this->render(
'socialBundle::foo.html.twig',
['id' => $id]
)
}
您还可以从数据库中获取数据并将其传递给视图。
如果那不是您想要实现的目标,请告诉我们您为什么要使用重定向,以及这两项操作应该做什么。
修改强> 如果我正确理解了您的评论,您希望实现already available in symfony。
的Flash消息文档中的示例简单且不言自明。
答案 2 :(得分:0)
根据您的上一次评论,我得出以下结论。
假设您有路由tuto_animaux_voir
的索引操作。并且路由具有一个参数id
。它需要id
作为参数并从数据库中提取警报(我们在数据库上有警报)。我们还有实体Alert
,字段ID(默认),标题。
...
public function indexAction($id){
$alert = $this->getDoctrine()->getEntityManager("AppBundle:Alert")->find($id);
return $this->render("AppBundle:Post:index.html.twig", array(
'alert' => $alert
));
}
在模板index.html.twig
中,您可以显示提醒。
...
{{ alert.title }}
...
如果要重定向到树枝中的索引操作。
<a href="{{ path("tuto_animaux_voir", { 'id': alert_id })}}">Alert Title<a>
此外,如果您想将此动作渲染为部分动作。
{{ render(controller('AppBundle:Alert:index',{'id': alert_id})) }}
我认为我的答案会对你有所帮助。