PR

[CakePHP] QueryStringを取得する

CakePHPのことだから、きっと何か便利な機能などがあるのかもしれないけれど、とりあえずメモ。

CakePHPにはCakePHPナリの書き方があるのは承知しているけれど、既存のCGIはGETしてくる。(他のサーバーに設置したCGIが別のサーバーに設置したCGIをGETするプログラムがある。今回はこのGETされるものをCakePHPに置き換えたい)ある程度の改造(リクエストURLをちょっと細工するとか)はできるけれど、パラメータ関連まで触りだすのは今回勘弁して欲しいところ。置き換えができるかどうかテストしてみた。

◆テストコントローラー(tests_controller.php)

 function index() {
  debug($this->params['url']);
  debug($this->params['named']);
 }

スポンサードリンク

◆アクセスしてみる

◇/tests?foo=bar&hoge=a&hoge=b&bar=foobar

Array
(
    [url] => tests
    [foo] => bar
    [hoge] => b
    [bar] => foobar
)
Array
(
)

◇/tests?foo=bar&hoge=a&hoge=b&bar=foobar

Array
(
    [url] => tests
    [foo] => bar
    [hoge] => b
    [bar] => foobar
)
Array
(
)

◇ /tests/index/p2:100/?foo=bar&hoge=a&hoge=b&bar=foobar

Array
(
    [url] => tests/index/p2:100/
    [foo] => bar
    [hoge] => b
    [bar] => foobar
)
Array
(
    [p2] => 100
)

◇ /tests/index/p2:100/p1:200/?foo=bar&hoge=a&hoge=b&bar=foobar

Array
(
    [url] => tests/index/p2:100/p1:200/
    [foo] => bar
    [hoge] => b
    [bar] => foobar
)
Array
(
    [p2] => 100
    [p1] => 200
)

◇/tests

Array
(
    [url] => tests
)
Array
(
)

※同一のフィールドがやってきたら配列にしてくれることを期待しているのだけれど、残念ながらそうはならないようでクエリの後方の値で上書きするようだ(上記テスト参照)

コメント