プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
CakePHP1.3系、複合主キーのテーブルを扱うときのvalidates()。
いやまぁ、すっごい単純なお話なんですけどね。
すっごい単純な知識不足だっただけなのですが。。

CakePHP1.3系、CakePHPで複合主キーのテーブルを扱う方法。

を実装したら入力チェックがされなくなっちゃった(つд`)
え~ん(p_q)ってのがそもそものきっかけ。

ほんで調べたら

1.元々のsave()メソッド内でvalidates()メソッドが呼ばれている。
 ※だから今まで意識しなくてもvalidates()のチェックがされていた

2.任意のタイミングで入力チェックしたい場合は
 「$this->モデル名->validates()」とか指定すればOK。

3.おまけで元々のsave()メソッドの第二引数に「array('validate' => false)」を渡すと
 validates()されない。

ってのが分かりました。

なるほど。つまりどっかで「2.」をやってあげればOKね。
っつ―わけで複合主キーのところで書いたモデル「app/models/hoge_model.php」に
こんなん追加して無事解決φ(--)

      /**
       * 保存 2012-10-17 add
       */
      public function save($pData) {
          //値設定
          $this->data = $pData;
  
          if($this->validates()){    //入力チェック
              return parent::save($pData);
          }else{
              return false;
          }
      }


1.modelに値を設定
2.validates()実行
3.チェックOKだったら親のsave()(複合主キー対応のsave())呼び出し
ってな流れです。

完成\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:CakePHP1.3系  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事