POSTパラメータを取る方法は腐るほど掲載されているくせに、GETパラメータに至っては公式ドキュメントにすらロクに説明されてないGETパラメータ。
普通に取るなら
$this->request->query['id']
けどこれだと未定義の場合Noticeエラーが表示される
例えば本来/?id=334
って感じで渡すところを/
のみでGETパラメータIDが存在しない場合、以下のように怒られる
Notice (8): Undefined index: id [APP/Controller/PostsController.php, line 9]
エラーを出さない取得法
エラーを出したくないなら
Hash::get($this->request->query, 'id')
また、GETパラメータが設定されているかどうかで条件分岐したいことは多々あると思うけど、Hash::get()
では第三引数を指定するとなかった場合の値(デフォルト値)も指定できるぞい( CakePHP2.5以上)
例えば
$order = Hash::get($this->request->query, 'order', 'price')
とやると/?id=334&order=stock
のようにorderが設定されている場合はその値であるstock
が、/?id=334
のように指定されなかった場合はデフォルト値であるprice
が格納される