2012-02-24 1 views
0

Так быть найти по этой ссылке (в качестве примера): http://localhost/codeigniter-app/en/results?search_query=dataCodeigniter uri_string не возвращает полный путь

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; 

Любые идеи?

Edit:

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

+0

Не могли бы вы сказать, какой результат вы ожидаете? – jgivoni

+0

ops извините, подумал, что это было очевидно ... check the edit – Alex

+0

Попробуйте добавить [L, QSA] к строке в htaccess, которая содержит index.php –

ответ

0

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

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

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

1

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

$config['enable_query_strings'] = true;

+0

не имеет никакого эффекта – Alex

1

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

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

Кроме того, он стоит в том числе это from the documentation:

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

+0

Дело в том, что мне не нужно получать данные '$ _GET', но URL-адрес, поэтому я использую его для изменения параметра языка. – Alex

+0

@ w0rldart: Я понимаю, но, как я уже упоминал, я думаю, что единственный способ получить строку запроса - это '$ this-> input-> get()'. Я думаю, вам придется использовать это в сочетании с 'uri_string' для создания« полного »URL-адреса. –

+0

Мне нужно 'uri_string' работать, потому что структура url не всегда одинакова – Alex

Смежные вопросы