在MVC中重定向PHP

aep*_*xus 2 php model-view-controller

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

假设我在控制器内部的方法中,我想重定向到另一个页面,我该怎么做?至少在概念上.

Rob*_*itt 11

如果您正在开发MVC您应该有一个输入类和一个输出类(I/O),您应该在输出类中创建一个名为redirect的函数,并从您的基本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;
}
Run Code Online (Sandbox Code Playgroud)

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

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
    */
}
Run Code Online (Sandbox Code Playgroud)