gpt4 book ai didi

php - Symfony 2 重定向出私有(private)函数

转载 作者:行者123 更新时间:2023-12-03 23:34:15 25 4
gpt4 key购买 nike

在我的应用程序中,我使用一个初始化函数来初始化一个 Action init函数验证用户输入(例如,用户正在寻找一个不存在的产品 -> init 函数应该将他重定向到错误页面“product ... not found”)

 /**
* @Route("/route/{var}", name="xyzbundle_xyz_index")
* @Template("VendorXyzBundle:xyz:index.html.twig")
*/
public function indexAction ($var)
{
$xyz = $this->initxyz($var);
...
.. more code
.
}

并且在这个 Controller 中有一个私有(private)函数应该验证从 url 给定的参数,如果它是错误的(不存在于数据库等),私有(private)函数应该重定向

private function init($var)
{
if($this->databasesearchforexyz($var)){
// redirect to Errorpage (No xyz found named ...)
return $this->redirect($this->generateUrl('xyz_error_...'));
}
if($this->checksomethingelse($var)){
// redirect to some other error page
}
}

请注意,这些不是我真正的方法/变量/路径/等等。名字。

问题是,它没有重定向。

最佳答案

您可以检查 init 函数是否返回实际响应,然后您可以直接从主代码返回它。像这样:

public function indexAction ($var) 
{
$xyz = $this->initxyz($var);
if ($xyz instanceof \Symfony\Component\HttpFoundation\Response) {
return $xyz;
}
...
.. more code
.
}

顺便说一句,如果你只需要检查数据库是否存在,你可以使用 symfony 的 paramconverter

关于php - Symfony 2 重定向出私有(private)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19400905/

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