プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
CakePHP1.3系、テーブルを使わないmodelでのvalidate処理
いやまぁ、単純にフォームの値を
次ページに引き継ぎたくてですね。
特にDBとは関係ない項目だったので
テーブルを使わないmodelに突っ込んで
validateだけやりたかったのです。

テーブルを使わないmodel自体は

  var $useTable = false;

ってやれば良いのだろうけど
validateどーやってやんの(--?
ってのが今回調べた経緯です。

結果、モデルで項目とチェック内容を定義して
コントローラでチェックしてその結果を振り分けろ、みたいです。
コードは例えばこんな感じφ(--)

■app/models/HogeModel.php
  class HogeModel extends AppModel {
      var $name = 'HogeModel';
      var $useTable = false;
  
      //入力カラムを定義 
      public $_schema = array(
          '項目1' => array( 
              'type' => 'char', 
              'length'=>200,
              'default'=>null,
          ), 
          '項目2' => array( 
              'type' => 'char', 
              'length'=>50,
              'default'=>null,
          ), 
      );
  
      //チェック内容を定義 
      var $validate = array(
          '項目1' => array(
              'length' => array(
                  'rule' => array('maxLength', 200),
                  'message' => '200文字以内で指定して下さい。',
              ),
          ),
          '項目2' => array(
              'required' => array(
                  'rule' => 'notEmpty',
                  'message' => '入力して下さい。',
              ),
              'length' => array(
                  'rule' => array('maxLength', 50),
                  'message' => '50文字以内で指定して下さい。',
              ),
          ),
      );
  }


■app/controllers/hoges_controller.php
  class HogesController extends AppController {
  
    var $name = 'hogesController';
    var $uses = array('HogeModel');
  
    public function hoge() {
  
          //省略
  
          //エラーチェック
          $this->HogeModel->set($this->data);
          $error = $this->validateErrors($this->HogeModel);
  
          if(!$error){
              print "エラーなし";
          }else{
              print "エラーあり";
          }
  
          //省略
    }
  }



ふ~ん(--)まぁ良いけど。

CakePHPさん、ある程度理解したつもりだけど
知れば知るほど不便だよなぁ(-A-)
痒いところに手が届かなくはないのだろうけど
どう掻けば良いのか探す手間の方が大きいっつ~か。。
やっぱ小・中規模開発だとデメリットの方が大きい気がするなぁ。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

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

  関連記事