CodeIgniter. Как получить имя контроллера и метода.
24 Окт 2009
Получить имя текущего контроллера и метода в CodeIgniter очень просто. Достаточно извлечь информацию из соответствующего сегмента строки URI. Это позволяют делать функции класса URI: segment(n) и rsegment(n). Класс URI инициализируется автоматически. А функция rsegment отличается от segment тем, что rsegment позволяет извлечь указанный сегмент из перенаправленного сегмента URI, в случае использования функционала URI роутинга фреймворка.
Итак, мы знаем, что имя контроллера расположено в первом сегменте URI строки, а имя метода – во втором:
<?php
// получаем имя текущего контроллера
$controller_name = $this->uri->rsegment(1);
// получаем имя текущего метода
$method_name = $this->uri->rsegment(2);
?>
Вообщето для этого у роутера есть спец. функции…
$this->router->fetch_class();
$this->router->fetch_method();
А зачем в данном случае через сегменты работать?
activate – контроллер
user – метод контроллера activate
Все, что идет дальше – это параметры метода user.
Т.е. в Вашем случае надо строку запроса упростить до
и
function User($id, $key)
{
echo $id; // 123
echo $key; // 1111111111
}
Добрый день!
я пробовал делать так,есть строка запроса:
в контроллере описано:
load->library(’uri’);
}
function Index()
{
}
function User()
{
#$_id = $this->uri->segment(3,0);
#$_key = $this->uri->segment(5,0);
$data['content'] = print_r($this->uri->uri_to_assoc(3),TRUE);
$this->load->view(’main_view’, $data);
}
}
в результате массив пустой
если брать посегментно то тоже пусто
не пойму в чем причина
не подскажите?