MVC 中的重定向 PHP

发布于 2024-10-17 01:18:57 字数 84 浏览 1 评论 0原文

我正在开发一个纯粹基于 PHP 的个人框架。

假设我正在控制器内的一个方法中,并且我想重定向到另一个页面,我该怎么做?至少在概念上是这样。

I am developing a personal framework purely on PHP.

Let's say I am in a method inside a controller and I want to redirect to another page how would I do that? At least conceptually.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怀里藏娇 2024-10-24 01:18:57

如果您开发的 MVC 应该有一个输入类和一个输出类 (I/O),您应该在输出类中创建一个名为“重定向”的函数,并从基本 url 构建新的 url,如下所示:

public function redirect($controller,$method = "index",$args = array())
{
    global $core; /* Guess Obviously */

    $location = $core->config->base_url . "/" . $controller . "/" . $method . "/" . implode("/",$args);

    /*
        * Use @header to redirect the page:
    */
    header("Location: " . $location);
    exit;
}

这样,在您的控制器中,您可以简单地使用输入类为您进行重定向。

class MyController extends BaseController
{
    public function login()
    {
        if($this->library->session->exists("user_logged_in") === false)
        {
            $this->library->output->redirect("MyController","login",array("from:login"));
        }
    }
    /*
       ..More Here
    */
}

If your developing MVC You should have an input class and an output class (I/O), you should create a function called redirect within the output class and build the new url from your base url like so:

public function redirect($controller,$method = "index",$args = array())
{
    global $core; /* Guess Obviously */

    $location = $core->config->base_url . "/" . $controller . "/" . $method . "/" . implode("/",$args);

    /*
        * Use @header to redirect the page:
    */
    header("Location: " . $location);
    exit;
}

This way within your controller you can simply use the input class do your redirect for you.

class MyController extends BaseController
{
    public function login()
    {
        if($this->library->session->exists("user_logged_in") === false)
        {
            $this->library->output->redirect("MyController","login",array("from:login"));
        }
    }
    /*
       ..More Here
    */
}
断桥再见 2024-10-24 01:18:57
header("Location: http://domain.com/folder/page.html", 301);
exit();

此代码必须是脚本的第一个输出。在向客户端生成任何输出后,您无法执行重定向。将重定向发送到客户端后,您可以退出脚本,因为用户看不到生成的任何其他输出。

header("Location: http://domain.com/folder/page.html", 301);
exit();

This code must be the first output of the script. You can not perform redirection after generating any output to the client. Once you have sent the redirection to the client, you can exit the script because any additional output generated would not be seen by the user.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文