如何正确执行URL重定向?
在action类中,函数末尾有一个:如何正确执行URL重定向?,url,redirect,symfony1,Url,Redirect,Symfony1,在action类中,函数末尾有一个: $this->redirect("/myproject_dev.php/login/"); 在其中,我在url中硬编码开发项目名称。当然,在我进行开发时它是有效的,但是当涉及到生产时,我需要删除它 那么,如何在代码中找到项目名称(“myproject_dev.php”)?这样我就可以做到: $this->redirect($myProjectDevName . "login/"); 或者。。有没有明智的方法来处理这个问题 谢谢 ------加
$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不起作用。我应该在路由规则中设置什么?重定向的上下文是什么?具体来说,为什么需要指定要重定向到的应用程序?