Главная > CodeIgniter > CodeIgniter. Как получить имя контроллера и метода.

CodeIgniter. Как получить имя контроллера и метода.

Получить имя текущего контроллера и метода в CodeIgniter очень просто.  Достаточно извлечь информацию из соответствующего сегмента строки URI. Это позволяют делать функции класса URI: segment(n) и rsegment(n). Класс URI инициализируется автоматически. А функция rsegment отличается от segment тем, что rsegment позволяет извлечь указанный сегмент из перенаправленного сегмента URI, в случае использования функционала URI роутинга фреймворка.

Итак, мы знаем, что имя контроллера расположено в первом сегменте URI строки, а имя метода – во втором:



  1. michail1982
    28 Фев 2010 из 15:53 | #1

    Вообщето для этого у роутера есть спец. функции…
    $this->router->fetch_class();
    $this->router->fetch_method();

  2. 17 Фев 2010 из 10:28 | #2

    А зачем в данном случае через сегменты работать?
    activate – контроллер
    user – метод контроллера activate
    Все, что идет дальше – это параметры метода user.
    Т.е. в Вашем случае надо строку запроса упростить до
    http://SITE.RU/index.php/activate/user/123/1111111111
    и
    function User($id, $key)
    {
    echo $id; // 123
    echo $key; // 1111111111
    }

  3. h0kum
    17 Фев 2010 из 10:20 | #3

    Добрый день!

    я пробовал делать так,есть строка запроса:
    http://SITE.RU/index.php/activate/user/id/123/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);
    }
    }

    в результате массив пустой
    если брать посегментно то тоже пусто
    не пойму в чем причина
    не подскажите?

  1. Трекбеков пока нет.