#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));