Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从默认控制器codeigniter获取uri段_Php_Codeigniter_Uri_Codeigniter 3 - Fatal编程技术网

Php 从默认控制器codeigniter获取uri段

Php 从默认控制器codeigniter获取uri段,php,codeigniter,uri,codeigniter-3,Php,Codeigniter,Uri,Codeigniter 3,我有codeigniter设置,使用“home”作为默认控制器,显示主页 我试图在home controller中运行index函数来收集uri段,以确定是否重定向或显示主页,但它似乎认为uri段是另一个控制器mysite.com/segment1 function index(){ $url1 = $this->uri->segment(1); if(!empty($url)){ echo $url1; } else{

我有codeigniter设置,使用“home”作为默认控制器,显示主页 我试图在home controller中运行index函数来收集uri段,以确定是否重定向或显示主页,但它似乎认为uri段是另一个控制器mysite.com/segment1

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

您正在将
$url1
设置为段,然后测试
是否$url为空。
从您的代码中,
$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');
    }
}

然后,它将按您的预期操作。

您可以将默认控制器设置为“主控”。然后能够阅读
$this->uri->segment(3)您需要通过URL mysite.com/controller/function/uri段传递uri(3)。如果您在home controller mysite.com中有一个索引函数,并且希望通过uri传递值11,那么您的url应该如下所示:

mysite.com/home/index/11

为了让这一切顺利进行,我不得不把路线改成

$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,它会带我到新的控制器页面,在那里我可以对段运行查询

try$url1=$this->uri->segment(2);,和$url1=$this->uri->segment(3);我试过,它似乎不起作用,我试过将默认控制器更改为“home/check_uri”,并包含一个重定向,但它也失败了。幸运的是,它仍然抛出一个404页面,该方法并不完全是我所希望的,我只希望收集checkmysite.com/home/index/segment3的第一个片段。是的,它确实起作用,但它已经起作用了我尝试了一些东西,但是当用户到达mysite.com时,他们应该会看到主页,这很容易实现,但是如果他们到达mysite.com/uri-segment,我想在重定向到另一个页面之前对uri段运行一个查询,让用户转到mysite.com/home/index/uri-segment,我会发现uri段太长一个与我在这里寻找的类似的例子是tinyurl的链接,链接到google.com tinyurl.com/1c2,看看第一段是怎样的1c2,这是我试图实现的。Well发现输入错误我花了一分钟才看到代码的差异,但它仍然认为我的$this->uri->segment(1);是一个不存在的控制器