如何将参数传递给索引和自定义路由

问题描述:

我想将参数传递给索引函数,如果参数不是,则重定向到主页。我也添加了自定义路线。我在哪里错过了代码?如何将参数传递给索引和自定义路由

$route['main/(:any)'] = 'main/index/'; // looks like has a mistake 

www.example.com - >当deafult指数函数

www.example.com/females - >当deafult指数具有字符串参数 '女'

class Main extends CI_Controller { 

public function index($gender) { 

    load->view('inc/header_view'); 

    if((isset($gender)) && ($gender =='female')){ 

    $this->load->view('female_view'); 

    } else { 

    $this->load->view('female_view'); 
    } 
} 

您可以通过下面的代码

class Main extends CI_Controller { 

public function index($gender="") { 

    if($gender == "") 
    { 
    $this->load->view('home'); 

    } else { 

    $this->load->view('female_view'); 
    } 
} 

而且,正如你所说得到这个URL工作www.example.com & www.example.com/females做到这一点,你需要以下添加到您的routes.php文件

$route['default_controller'] = "main"; 
$route['(:any)'] = 'main/index/$1'; 

如有任何疑问,请告知我

你应该尝试它就像

$route['main'] = 'main/index'; 

$route['main/(:any)'] = 'main/index/$1'; 

或者你可以使用uri段。

http://www.codeigniter.com/user_guide/libraries/uri.html?highlight=uri%20segments#CI_URI::segment