Вы звоните
$route['project'] = "project";
, он запустит вашу функцию project
контроллер index
, поэтому он будет работать
$route['project/(:any)'] = 'project/method_name/$1'
, если вы позвоните, как это, будет искать project
контроллер method_name
функция, и вы должны передать parameter
.потому что вы добавили (:any)
в маршруты
Если вы используете (:any)
или (:num)
в маршрутах, вы должны захватить параметр в функции.
пример.
$route['project/(:any)'] = 'project/method_name/$1'
function method_name($param1){
//your code
}
$route['project/(:any)/(:any)'] = 'project/method_name/$1/$2'
function method_name($param1, $param2){
//your code
}
Вы можете просто использовать (.*)
в маршруте для неограниченных параметров.и вам не нужно захватывать параметр в функции.проверьте ниже.
$route['default_controller'] = 'home';
$route['404_override'] = 'home';
$route['translate_uri_dashes'] = FALSE;
$route['(.*)'] = "home";
$route['project'] = "project";
$route['project/(.*)'] = 'project';
используйте $this->uri->segment()
для захвата неограниченного количества параметров в функции
class Home extends CI_Controller {
function index(){
$param1 = $this->uri->segment(1);
$param2 = $this->uri->segment(2);
$param3 = $this->uri->segment(3);
}
}
class Project extends CI_Controller {
function index(){
$param1 = $this->uri->segment(1);
$param2 = $this->uri->segment(2);
$param3 = $this->uri->segment(3);
}
}