2011-07-14 5 views
4

CodeIgniterでは、URIセグメントとクエリ文字列を同時に組み合わせるのは難しいです。 これを達成するための伝統的な方法の1つは、enable_query_stringsを有効にすることです。有効にしないでURIセグメントとクエリ文字列を両方とも使用する方法:enable_query_strings

これはいくつかの奇妙な動作があり、すべてのURLヘルパーにも影響します。

例:redirect('/home')を使用すると、domain.com/?/homeにリダイレクトされます。

私の知るところでは、enable_query_stringsはURIセグメントでは使用されません。

GETとURIの両方を有効にするためにコアをどのように拡張するのですか?

P.S. URIセグメントを使う方が良いことは分かっていますが、時にはアドワーズ広告のようなGETクエリを受け入れることは非常に重要です。

+1

私はあなたと一緒にいますが、時には$ _GETが必要です。それをウリのセグメントと「混合」することは何も問題ありません。例:ユーザーが入力した検索語を使用する検索結果にリンクできるようにする。ユーザーの入力に 'permitted_uri_chars'にない文字が含まれていると、これ以外にどのようにサポートできますか? '$ _GET'を使用するサードパーティレスポンスを扱うのはどうですか?あなたは**時にはそれが必要なのですが、なぜ最初に無効になったのか分かりません。 –

答えて

4

最善の解決策はこれです:

  • は誤解を招くenable_query_strings(それはあなたが望むものではありません)
  • 忘れる現在2.0.2
  • 、あなたはCIの最新バージョンであることを確認しますあなたの設定ファイルを開き、$_GET
  • で再生できるようになるallow_get_arrayTRUEに設定してください。あなたのenviで動作するものが見つかるまで私にとっては、PATH_INFOの作品です。
  • 適切なクエリ文字列の使用をお楽しみください!

enable_query_strings休憩のURLに対処すべてヘルパー関数を含む、CodeIgniterのは偉大なり、ほぼすべての機能。実験的な機能の1つで、CIが周りにいる限り、通常のクエリ文字列のサポートと混同されていました。

ボトムライン - まだアップグレードしていない場合はアップグレードし、ハックを書き込もうとしないでください。

+0

ありがとう、それは働いた! – Ryan

+0

私はヘルパーを使用できるようにする必要があります(私はhttp://domain.com/user/account/editを持つことができます)が、コントローラとメソッド(http:// domain)にアクセスするためのクエリ文字列の使用も必要とします。 com =ユーザー&c =アカウント&m =編集)。 enable_query_stringsをFALSEに設定すると、allow_get_arrayがTRUEであるにもかかわらず、後者を使用できなくなります。オプションとURLヘルパーの両方をうまく使用する方法はありますか? (追加するには、enable_query_stringsがFALSEに設定されている場合でもクエリ文字列を使用できますが、URIバージョンにリダイレクトされるようですが、これは起こりたくありません) –

関連する問題