从默认控制器codeigniter获取uri段

时间:2018-02-12 20:24:14

标签: php codeigniter uri codeigniter-3

我有codeigniter设置使用“home”作为显示主页的默认控制器 我试图在家庭控制器中运行索引功能来收集uri段以确定是否重定向或显示主页但似乎认为uri段是另一个控制器mysite.com/segment1

function index(){
    $url1 = $this->uri->segment(1);
    if(!empty($url)){
        echo $url1;
    }
    else{
        $this->load->view('home_page');
    }
} 

3 个答案:

答案 0 :(得分:0)

您要将$url1设置为细分,然后再测试if $url is empty。 从您的代码中,$url将始终为空。

请务必密切关注您所谓的变量。

所以你现在拥有......

function index(){
    $url1 = $this->uri->segment(1);
    if(!empty($url)){ // $url will always be empty as it's not defined.
        echo $url1;
    }
    else{
        $this->load->view('home_page');
    }
}

你应该拥有什么......

function index(){
    $url = $this->uri->segment(1);
    if(!empty($url)){
        echo $url;
    }
    else{
        $this->load->view('home_page');
    }
}

然后它会像你想象的那样。

答案 1 :(得分:0)

您可以将默认控制器设置为home。然后,为了能够阅读$this->uri->segment(3);你需要通过URL mysite.com/controller/function/uri-segment(3)传递你的uri。如果您在家庭控制器mysite.com中有一个索引功能,并且您希望通过uri传递值11,则您的url shuld看起来像这样:

mysite.com/home/index/11

答案 2 :(得分:0)

为此,我必须将路线更改为

$routes[('any')] =  "New_controller"; //created a new controller 

在“New_controller”中我可以定义我想要的第一段

   function index(){
    // define segments
    $url = $this->uri->segment(1);
     if(!empty($url)){
      echo $url;
    }

当然还有我的

$routes['default_controller'] = "home";


function index(){

// home controller
 $this->load->view('home_page');


} 

现在当我去mysite.com时它会带我到主页或者如果我去mysite.com/12345它会带我到新的控制器页面,在那里我可以在段上运行查询