簡體   English   中英

Codeigniter中的路由控制器

[英]routing controller in codeigniter

我的routes.php如下:

$controller_list = array('showmenu','aboutus'); // etc you will have        to put all your controllers in this array

foreach($controller_list as $controller_name)
{
     $route[$controller_name] = $controller_name;
     $route[$controller_name.'/(:any)'] = $controller_name.'/$1';
}
$route['([a-zA-z_]+)'] = 'main/index/$1';
//$route['default_controller'] = "home";
$route['404_override'] = '';

我想在主類中調用所有控制器,例如localhost / foldername / main / about(不同的子彈)怎么做?

我完全不明白您想說什么,但是您可以在routes.php中分別定義每個函數,以實現簡單而精細的URL,如下所示:

$route['whatever you want in your url'] = 'your controller name/your function name';

這將是:

localhost/foldername/(different slugs)

      if (!defined('BASEPATH'))
     exit('No direct script access allowed');

    class Main extends CI_Controller {


public function __construct() {
    parent::__construct();
    $this->load->library('form_validation');
     $this->load->database();
    $this->load->model("menu_model");
     $this->load->model("main_model");
}

public function index() {


     $data['category']= $this->menu_model->getCategory('$lang');
    $data['subcategory']= $this->menu_model->getSubCategory('$lang');


    $this->load->view('vwHeader',$data);//Left Menu


}

 public function showmenu()
{
     $menutitle = $this->uri->segment(3);
      $query = $this->db->get_where('category',array('namecategory'=>$menutitle));
      $data['content'] = $this->main_model->show_content($menutitle);

    $data['category']= $this->menu_model->getCategory('$lang');
    $data['subcategory']= $this->menu_model->getSubCategory('$lang');

    $this->load->view('vwMain',$data);//Left Menu
}
 public function menu()
{
    $data['category']= $this->menu_model->getCategory('$lang');
    $data['subcategory']= $this->menu_model->getSubCategory('$lang');

    $this->load->view('vwHeader',$data);//Left Menu
}



       public function aboutus() {

       $arr['page'] ='about';
         $data['category']= $this->menu_model->getCategory('$lang');
    $data['subcategory']= $this->menu_model->getSubCategory('$lang');


    $this->load->view('vwHeader',$data);//Left Menu
    $this->load->view('vwAboutus',$arr);
}

         public function contactus() {

       $arr['page'] ='contactus';
         $data['category']= $this->menu_model->getCategory('$lang');
    $data['subcategory']= $this->menu_model->getSubCategory('$lang');


    $this->load->view('vwHeader',$data);//Left Menu
    $this->load->view('vwContactus',$arr);
}


 }

這是控制器main.php

首先嘗試一下,您必須設置默認控制器

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

那么你必須定義你的方法

$route['same url'] = 'aboutus';
$route['same url'] = 'showmenu';

在你的routes.php中

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

$route['aboutus'] = 'aboutus';
$route['slug'] = 'showmenu';

$route["^((?!\b".implode('\b|\b', $controller_exceptions)."\b).*)$"] = $default_controller.'/$1';

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM