gpt4 book ai didi

php - $this->render 和 $this->redirect 之间的区别 Symfony2

转载 作者:可可西里 更新时间:2023-11-01 12:23:32 25 4
gpt4 key购买 nike

$this->render 和 $this->redirect 有什么区别。有没有一种方法可以像 $this->redirect

那样用 $this->render 传递参数
return $this->render('MedicineUserBundle:User:home.html.twig', array(
'info' => $all,));

我可以做这样的事情吗:-

return $this->redirect($this->generateUrl('MedicineUserBundle_login', array(
'info' => $all,)));

或者有没有其他方法可以通过 $this->redirect 将值传递到我的模板 twig 文件。

还有一个问题我如何使用 $this->redirect 更改 url,例如,如果我不必将任何值传递到我的模板文件,我可以按照上面提到的那样进行渲染我转到像 localhost/myproject/home 这样的页面,但是 $->this->redirect 将执行 Controller ,但 url 将与 localhost/myproject 相同/。无论如何我可以使用重定向重定向到另一个 url

最佳答案

重定向()

Redirect 执行到指定路由/位置的 301 或 302 重定向。我相信您可以使用它来传递完整的 URL。使用此方法将导致地址栏中的 URL 发生变化。

因为重定向使用简单的 301/302 header 进行重定向,所以无法将模板参数传递到新位置,除了在 URL 上,就像您对任何 Controller 或 URL 所做的那样。

渲染()

Render 只是渲染你告诉它的模板文件作为对当前请求的响应。有了它,您可以像往常一样传递模板参数数组。

转发()

还有 Forward 将请求转发给另一个 Controller ,在内部发送该 Controller 的响应作为对当前请求的响应,而不进行任何重定向。使用此方法在内部重新路由请求,而无需更改地址栏中的 URL。

Render 和 Redirect 之间的主要区别在于 Render 是 View 系统的一部分,因此可以将参数传递给模板。重定向是 Controller 系统的一部分,对 View 一无所知。您可以将参数传递给要重定向到的路由或 URL,但目标位置必须对它们执行某些操作才能将它们传递给 View 。

关于php - $this->render 和 $this->redirect 之间的区别 Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9442533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com