2012-02-24 18 views
0

だから、(例として)次のURLで探している:http://localhost/codeigniter-app/en/results?search_query=dataのCodeIgniter 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; 

アイデア?

編集:

問題がhttp://codeigniter.com/wiki/CodeIgniter_2.1_internationalization_i18nライブラリ

+0

は、あなたが期待している結果、何と言うだろうか? – jgivoni

+0

ops申し訳ありませんが、それは明らかでした...編集を確認してください – Alex

+0

index.phpを含むhtaccessの行に[L、QSA]を追加してみてください –

答えて

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

を使用するときは、クエリ文字列を持って発見されたがオフになって - 私は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を生成するヘルパー)は、セグメントベースのURLで動作するように設計されています。

+0

私は '$ _GET'データを取得する必要はありませんが、私は言語パラメータを変更するためにURLを使用します。 – Alex

+0

@ w0rldart:わかりましたが、私が触れたように、クエリ文字列を取得する唯一の方法は '$ this-> input-> get()'です。私はあなたが '完全な 'URLを構築するために' uri_string'と一緒にそれを使用しなければならないと思います。 –

+0

url構造体が常に同じではないので、私はちょうど 'uri_string'が必要です。 – Alex

関連する問題