CakephpでGETでフォームを送信する方法まとめ
自分用にまとめ【Controller】 public function XXXX() { // メソッドがGETかつ クエリパラメータがついてるとき。画面初期表示に処理が走らないように。 if ($this->request->is('get') and ($this->request->query)) { //使用するモデルの宣言 $modelXXX = ClassRegistry::init('modelXXX '); // バリデーションのための準備 // get のため、$this->request->dataに値が入ってないので、明示的にデータを設定する // Modelにて_schemaに全ての項目を定義し、その分項目を設定する foreach ($modelXXX ->_schema as $key => $value) { $this->request->data['modelXXX '][$key] = $this->request->query[$key]; } // モデルにデータを格納 $modelXXX ->set($this->request->data); // 複数ボタンがある場合の判定を入れるには if (isset($this->params['url']['ボタン名'])) { // バリデート if ($ modelXXX -> validates(){ } } } }【Model】 // バリデーションに必要な項目を_schemaで定義する public $_schema = array( // appid 'appid' => array( 'type' => 'String' ,'length' => 36 ) )【View】 // typeをgetで明示的に指定する。Cakephpのデフォルトはpost echo $this->Form->Create('modelXXX',array('div' => false,'class'=>'form-group','type' => 'get')); ※ボタンのtypeがどのように作成されるのかは以下参照 http://book.cakephp.org/2.0/ja/core-libraries/helpers/form.html#FormHelper::button