繁体   English   中英

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

[英]controller name in the url in codeigniter to be more than one

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

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

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

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

控制器home.php

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

    public function index(){

    }

    public function info(){

    }
}

控制器food.php

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

    public function index(){

    }

    public function foodMenu(){

    }
    public function foodJenis(){

    }

}

控制器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/drink/drinkmenu,www.mydomain.com/drink/drinkjenis。

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

一种解决方法是使用base标签。

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

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

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

你如何建立链接?

我认为有问题你试图做相对链接和html将食物看作文件夹所以当你把链接作为

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

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

但是,如果你使用CI网址

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM