Codeigniter: второй параметр ‘_remap’ (должен быть сегментом URL) возвращает пустой?

#url #codeigniter #segment #remap

#url #codeigniter #сегмент #переназначение

Вопрос:

У меня проблема. Я переопределил вызов метода CI по умолчанию с помощью функции ‘_remap’. Все работает так, как я должен, когда я передаю один параметр, который, конечно, является переопределенным методом (второй сегмент uri). Однако, следуя инструкциям руководства пользователя, когда я пытаюсь извлечь дополнительные сегменты URL с помощью приведенного ниже метода, массив $params пуст? Я использовал дамп var для переменной $ a в моем main_view, и он всегда показывает, что массив пуст, даже когда присутствует 3-й сегмент uri.

В руководстве пользователя CI указано, что «Любые дополнительные сегменты после имени метода передаются в _remap() в качестве необязательного второго параметра’. (http://codeigniter.com/user_guide/general/controllers.html ) Но, похоже, это не так. Кто-нибудь знает, что я могу делать неправильно?

 class Services extends Controller {
 var $group = 'services';
function Services()
{
    parent::Controller();
    $this->load->helper('url');
}

public function _remap($subPage, $params = array()){

    $pageData = $this->page_builder->buildPage($this->group,$subPage);
    if($subPage != 'index'){ $pageData['thisPage'] = $this->group .'/' . $subPage; }
    else{ $pageData['thisPage'] = $this->group; }
    $pageData['a'] = $params;
    $this->load->view('main_view', $pageData);
}
  

}

Спасибо.

Ответ №1:

У меня тоже была похожая проблема, поэтому я немного подправил, что сработало для меня:

 $segs = $this->uri->segment_array();
        $params=array_slice($segs, array_search($method, $segs));