[英]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.