使用php在codeIgniter中使用_remap是什么用途

时间:2013-11-22 06:27:37

标签: php mysql codeigniter

嗨,朋友们可以解释一下,在使用PHP的codeIgniter中使用 _remap 函数有什么用,请注明示例和描述...

2 个答案:

答案 0 :(得分:5)

http://ellislab.com/codeigniter%20/user-guide/general/controllers.html

重新映射函数调用

如果您的控制器包含名为_remap()的函数,则无论您的URI包含什么,它都将始终被调用。它覆盖了URI确定调用哪个函数的正常行为,允许您定义自己的函数路由规则。

例如: 您的网址为localhost/index.php/user/index,但您不想为此index致电,那么您可以使用_remap()来映射新功能view而不是index

public function _remap($method)
{
    if ($method == 'index')
    {
        $this->view();
    }
    else
    {
        $this->default_method();
    }
}

答案 1 :(得分:0)

在这段简短的代码中,我们必须在url中传递索引以显示我们回显的内容。但是在函数本身内部带有_remap()。我们应该传递索引而不是索引。假设您有很多功能,而您只是将其命名为public function codeig(){},那么将codeig传递到url中就不好意思了,对吗?因此,您将使用_remap并将codeig设置为hello或任何(您想要的函数名称),现在可以将hello或命名为函数的名称传递给url。

class Tuts extends CI_Controller{
    public function index($name = 'john',$age=18){
        echo "Your name is $name, you are $age years old";
    }

    public function _remap($method){
        if ($method === 'indexs') { //you should have to type indexs in uri instead of index
            $this->index();
        }else{
            $this->default_method();
        }
    }