Php 重定向链接时将变量设置为细枝?

Php 重定向链接时将变量设置为细枝?,php,symfony,Php,Symfony,我想在重定向链接时将变量设置为twig,就像使用渲染方法时一样: return $this->render('socialBundle::index.html.twig',array( 'id' => $id )); 它将Id变量设置为twig:{{Id} return $this->redirect($this->generateUrl("tuto_animaux_voir", array(

我想在重定向链接时将变量设置为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

很抱歉这个糟糕的概念和语言,因为我不是英国人,这是我的第一个问题


等待回复,谢谢。

在您的情况下,“tuto_animaux_voir”是一条与控制器动作相关的路线。给定的id将可用作操作参数,因此您可以按如下方式传递它:

public function fooAction($id)
{
    return $this->render(
        'socialBundle::foo.html.twig',
        ['id' => $id]
    )
}
您还可以从数据库中获取数据并将其传递给视图

如果这不是您想要实现的,请告诉我们为什么要使用重定向,以及这两个操作应该做什么

编辑: 如果我正确理解了您的评论,那么您希望实现flash消息,这些消息是


文档中的示例简单明了。

我不太明白您想做什么,如果您想在细枝模板中添加链接,或者只是根据条件从控制器重定向。如果你能详细说明你想做什么,我想我可以帮你

更新(解决方案)


您可以使用“转发到另一个控制器”,而不是使用“重定向”,然后从那里将变量发送到细枝模板

根据您的上一条评论,我得出以下结论

假设您有索引操作,路径
tuto\u animaux\u voir
。路由有一个参数
id
。它以
id
为参数,从数据库中获取警报(我们在数据库中有警报)。此外,我们还有实体
警报
,字段id(默认值)为title

在模板
index.html.twig
中,可以显示警报

...
 {{ alert.title }}
...
如果要重定向到细枝中的索引操作

<a href="{{ path("tuto_animaux_voir", { 'id': alert_id })}}">Alert Title<a>

我想我的回答会对您有所帮助。

您不能在重定向上发送数据。您可以创建另一个操作,该操作使用您的
id
参数并从数据库中获取
object
。您希望传递哪个变量?请描述您的业务逻辑好吗?我想创建一个简单的注册/登录/注销站点,我只想在输入此链接xxxxx.com/alert时在索引中显示一些警报,这就是为什么我想将链接重定向到索引并显示警报变量…检查我的答案,我想这就是您想要的。我只想使用重定向将变量传递给twig?您可以使用而不是使用“重定向”然后从那里将变量发送到twig template.nice,但这不会重定向页面,它将在链接中显示id。。。我只想通过它而不展示它…好的。问题是你们不能完全描述你们的业务逻辑。你们现在明白了吗?我想你们想实现你们自己的自行车。
<a href="{{ path("tuto_animaux_voir", { 'id': alert_id })}}">Alert Title<a>
{{ render(controller('AppBundle:Alert:index',{'id': alert_id})) }}