codeigniter中url中的控制器名称不止一个

时间:2012-12-24 13:20:54

标签: php codeigniter url-routing

我有3个控制器是家庭,食物和饮料。家庭控制器我想制作默认控制器。我在routes.php文件中写道:

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

 $ route ['404_override '] ='';

然后我在每个控制器中制作如下代码:

controller home.php

class Home extends CI_Controller{
    public function __construct() {
        parent::__construct();
    }

    public function index(){

    }

    public function info(){

    }
}

controller food.php

class Food extends CI_Controller{
    public function __construct() {
        parent::__construct();
    }

    public function index(){

    }

    public function foodMenu(){

    }
    public function foodJenis(){

    }

}

controller drink.php

class Drink extends CI_Controller{
    public function __construct() {
        parent::__construct();
    }

    public function index(){

    }

    public function drinkMenu(){

    }
    public function drinkJenis(){

    }

}

我想制作这个网址,例如www.mydomain.com/home,www.mydomain.com/food,www.mydomain.com/food/foodmenu,www.mydomain.com/food/foodjenis,www.mydomain。 com / drink,www.mydomain.com / adm / drinkmenu,www.mydomain.com / adm / drigjenis。

但当我在网址www.mydomain.com/food/foodmenu上时,我前往www.mydomain.com/food/foodjenis,但出现的网址是www.mydomain.com/food/food/foodjenis 。 “food”控制器名称在url中分成两部分。如何处理它。请帮我。谢谢你:(

3 个答案:

答案 0 :(得分:1)

要解决的一种方法是使用base代码。

文档头中的某个地方(包括任何css或js之前)放

<base href='http://mysite.com'>

之后,您可以在CI应用程序中自由使用相对链接。

答案 1 :(得分:1)

你如何建立链接?

我认为有问题你尝试进行相对链接,html将食物看作文件夹,所以当你把链接作为

<a href="food/foodjenis"></a>

它会像你写的那样建立链接www.mydomain.com/food/food/foodjenis

但是如果你使用CI网址

  <a href="<? php echo site_url('food/foodjenis') ?>"></a>

它应该像你想的那样工作。

答案 2 :(得分:0)

你是否在CI的配置文件中设置了基本URL?如果是的话。尝试相对路径。喜欢food / foodjenis

<a href="<? php echo base_url('food/foodjenis') ?>"></a>