Codeigniter uri_string не возвращает полный путь - PullRequest
0 голосов
/ 25 февраля 2012

Таким образом, находясь по этому URL (в качестве примера): http://localhost/codeigniter-app/en/results?search_query=data

uri_string не возвращает требуемый путь

["uri_string"]=>
  string(10) "en/results"

и ожидаемый:

["uri_string"]=>
  string(10) "en/results?search_query=data"

Некоторые из моих config.php

$config['uri_protocol'] = 'AUTO';
$config['url_suffix'] = '';
$config['allow_get_array']      = TRUE;
$config['enable_query_strings'] = false;

Есть идеи?

Редактировать:

Проблема обнаружена при использованииhttp://codeigniter.com/wiki/CodeIgniter_2.1_internationalization_i18n библиотека

Ответы [ 3 ]

1 голос
/ 25 февраля 2012

Полагаю, вам придется использовать $this->input->get() для доступа к строке запроса, которая на основе вашего примера выдаст:

array(1) { ["search_query"]=> string(4) "data" }

Также стоит включить это из документации :

Обратите внимание: если вы используете строки запроса, вам придется создавать свои собственные URL-адреса, а не использовать помощники URL-адресов (и другие помощники, которые генерируют URL-адреса, например некоторые помощники формы), поскольку они предназначены для работы с сегментом на основе URL.

1 голос
/ 25 февраля 2012

У вас отключены строки запросов - в прошлый раз, когда я использовал CI (обратно на 1.7.x), он игнорировал их. Попробуйте включить их:

$config['enable_query_strings'] = true;

0 голосов
/ 27 февраля 2012

Я закончил добавлять это в application/core/MY_Lang.php, где мне нужно было получить правильный путь:

if(preg_match('/results/', $this->uri))
{
    $this->uri = $this->uri.'?'.$_SERVER['QUERY_STRING'];
}

ниже: $this->uri = $URI->uri_string();

...