0

CodeIgniter のアクティブなレコードを使用していますが、問題に直面しています:

  1. 私はライブラリに1つのクラスを持っています:

    クラスTblUser{

      var $id = null;
      var $name = null;
      var $age = null;
    

    }

  2. モデルには1つのクラスがあります:

    class Task_m extends CI_Model {
    
        function add(){
    
           //Assume that i already success include class TblUser so i start instean
    
          $myTableUser = new TblUser ();
          $myTableUser->id = 1;
          $myTableUser->name = 'Foo';
          $myTableUser->age = 20;
          $this->db->insert('tbl_user',$myTableUser);
          // Assume that success add to database
        }
        function update($id,$name){
    
           //Assume that i already success include class TblUser so i start instean
    
          $myTableUser = new TblUser ();
          $myTableUser->name = $name;
    
          $this->db->where('id', $id);
          $this->db->update('tbl_user',$myTableUser); 
          // Assume that success add to database
        }
    
    
        /* problem 
         * i call function : update(1,'titi');
         * in database record will update like below:
         *  ----------------
         *  |id | name | age | 
         *   ----------------
         *  |null| titi| null|
         *  -----------------
         * I don't want null value, my wish if any property $myTableUser is null should be refuse.
         */
    
    
    
    
    
    
    }
    

この言及については、クラスパスをアクティブなレコード関数に使用したいのですが、null 値を含むプロパティは拒否する必要があります。(同様の joomla インスタンス テーブル)

4

1 に答える 1

1

次のようにクラスを記述した方法では、提供されていない場合に null 値を取ることは明らかです。

class TblUser{

  var $id = null;
  var $name = null;
  var $age = null;
}

次に、2つのソリューションがあります

  1. 関数でupdate()は、オブジェクトを$myTableUser->id = $id;に初期化します。
  2. NOT NULLテーブルに、値を挿入する場合に例外をスローするように呼び出される列レベルの制約を追加しますnull
于 2012-08-30T05:38:49.783 に答える