2012-05-05 18 views
1

私のレストウェブサービスでは、都市や地域などを置くためにいくつかのバリエーションが必要です。だから私のURIは次のようになります。質問のマークが付いたURIセグメント

/rest/rating/locations?city=London 

今、私は最後のURIセグメントを取得するには、以下の機能を使用しています:

$segcount = $this->uri->total_segments(); 
$lastseg = $this->uri->segment($segcount); 

問題は、疑問符からeverthingがcuttedされることをここにあります!保存されます 変数だけです:場所

私はconfig.phpの中で、次のconfigureを試してみた:

$config['uri_protocol'] = 'PATH_INFO'; 
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-?'; 
$config['enable_query_strings'] = TRUE; 

は疑問符でセグメント全体を保存するために、他の可能性はありますか?お使いの設定ファイルで

+0

「$ this-> uri-> total_segments()」は、セグメントの**#**のみを返します。 '$ this-> uri-> segment_array()' –

+1

@tim:彼のメソッドは、何らかの理由で* last * URLセグメントを取得しています。 –

+0

はい最後のセグメントが必要です。その後、 '$ city = substr($ lastseg、strlen(" locations?city = "))'を使用して文字列で都市を取得します – milepile

答えて

0

、次はTRUEとして設定されていることを確認します

$config['allow_get_array']= TRUE; 
+1

それはalredyが設定されています。 – milepile

+0

上記の新しいコメントを参照してください、私は私の答えにも追加しています... –

+0

@milepile:もっと慎重に、あなたはこれを設定していないと言った - あなたは 'enable_query_strings'を使ったと言った。 2つの全く異なるもの。私はそれが混乱していることを知っている、私は彼らがその機能のサポートをドロップすることを望む。このページの一番下にある(注意深く読んでください):http://codeigniter.com/user_guide/general/urls.html –

2

まず、あなたが持っていることを確認してください。

$config['allow_get_array'] = TRUE; 

enable_query_stringsが実際に完全に何か他のもの、の古い機能ですあまり使われていない。

URIクラスは依然としてあなたを助けません。クエリ文字列を別途参照する必要があります。

$segcount = $this->uri->total_segments(); 
$lastseg = $this->uri->segment($segcount); 

// Either of these should work 
$query_string = http_build_query($this->input->get()); 
$query_string = $this->input->server('QUERY_STRING'); 

$lastseg_with_query = $lastseg.'?'.$query_string; 
関連する問題