1

私のページがオンになっているとしましょう:

http://localhost/app1/profile/index/123/

current_url() の結果は次のとおりです。

http://localhost/app1/?profile/index/123

あっては?ならないものがあります。疑問符は、次の構成設定が原因のようです。

$config['enable_query_strings'] = TRUE;

アプリケーションでクエリ文字列を有効にする必要があります。私がしなければならないことはありますか?

編集1:

また、URL にクエリ文字列が含まれている場合は、それを返すために current_url も必要です。ここでの Phil Sturgeon のソリューションCodeIgniter current_url does not show query stringsが役立つことを願っています。

CI 2.1.0 を使用しています。

4

2 に答える 2

1

前述のように、サポートがなかったとき(実際には何もない)$config['enable_query_strings']からの Codeigniter の「レガシー」設定のようなものです。$_GET

http://codeigniter.com/user_guide/general/urls.html

クエリ文字列を有効にする

場合によっては、クエリ文字列の URL を使用することをお勧めします。
index.php?c=products&m=view&id=345

c=== コントローラー名 m=== メソッド名

残りはメソッドの引数です。これは非常に誤解を招く説明であり、URL ドキュメントの残りの部分では、他の設定やクエリ文字列についてはまったく言及されていません。これを実際に使っている人は聞いたことがありません。CIには$config['allow_get_array']= TRUE;デフォルトで付属しており、これが必要です。

current_url()クエリ文字列をサポートするために関数を変更できapplication/helpers/MY_url_helper.phpます。これを作成して使用するだけです。

function current_url($query_string = FALSE)
{
    $CI =& get_instance();
    $current_url = $CI->config->site_url($CI->uri->uri_string());
    
    // BEGIN MODIFICATION
    if ($query_string === TRUE)
    {
        // Use your preferred method of fetching the query string
        $current_url .= '?'.http_build_query($_GET);
    }
    // END MODIFICATION

    return $current_url;
}

次にcurrent_url(TRUE)、クエリ文字列を含めるように呼び出します。

于 2012-05-07T05:49:25.343 に答える
0

使用しないでください:$config['enable_query_strings'] = TRUE;

代わりにこれを使用してください:$config['allow_get_array']= TRUE;

enable_query_stringsあなたが思っていることではなく、あまり使われていません。

独自のクエリ文字列を作成するには、次の2つのいずれかを使用します。

$query_string = http_build_query($this->input->get());
$query_string = $this->input->server('QUERY_STRING');

これと一緒に:

$lastseg_with_query = $lastseg.'?'.$query_string;

詳細については、このSO Q&Aを参照してください:疑問符付きのURIセグメント

于 2012-05-07T02:46:18.457 に答える