Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确执行URL重定向?_Url_Redirect_Symfony1 - Fatal编程技术网

如何正确执行URL重定向?

如何正确执行URL重定向?,url,redirect,symfony1,Url,Redirect,Symfony1,在action类中,函数末尾有一个: $this->redirect("/myproject_dev.php/login/"); 在其中,我在url中硬编码开发项目名称。当然,在我进行开发时它是有效的,但是当涉及到生产时,我需要删除它 那么,如何在代码中找到项目名称(“myproject_dev.php”)?这样我就可以做到: $this->redirect($myProjectDevName . "login/"); 或者。。有没有明智的方法来处理这个问题 谢谢 ------加

在action类中,函数末尾有一个:

$this->redirect("/myproject_dev.php/login/");
在其中,我在url中硬编码开发项目名称。当然,在我进行开发时它是有效的,但是当涉及到生产时,我需要删除它

那么,如何在代码中找到项目名称(“myproject_dev.php”)?这样我就可以做到:

$this->redirect($myProjectDevName . "login/");
或者。。有没有明智的方法来处理这个问题

谢谢

------加成---

因此,我按照建议使用了公共路径。但它只返回根路径

我想知道在开发模式下运行时是否有一个函数:

http://mydomain.com/myproject_dev.php/whatever   
在其行动类别中: $this->redirect(公共路径('login'); 并导致

而如果我在生产中运行:
操作类保持不变: $this->redirect(公共路径('login'); 它将返回以下内容:

或者。。如何获取应用程序名和symfony环境名

:)

你可以试试

 public_path()

您应该使用symfony路由系统,并从您的routing.yml中调用路由规则:

$this->redirect('@login');

这样一来,它就与您的环境分离了,当您准备投入生产时,您无需更改任何内容。

试试这个,将其放入您的功能中

$this->redirect("MODULENAME/ACTION");

ex: $this->redirect("pim/admin"); 

这会将您重定向到pim模块管理操作…

它会在生产过程中显示公共路径。然而,在开发中,如果我在公共路径(“login/”)中传递,它将不会“返回”/myproject\u dev.php/login/”;我试过了。但是@login不起作用。我应该在路由规则中设置什么?重定向的上下文是什么?具体来说,为什么需要指定要重定向到的应用程序?