0

我使用 CodeIgniter 的活动记录,我遇到了一个问题:

  1. 我在图书馆有一堂课:

    类 TblUser{

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

    }

  2. 在模型中,我有一类:

    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.
         */
    
    
    
    
    
    
    }
    

对于这一点,我想使用类传递给活动记录函数,但对于任何包含空值的属性都应该被拒绝。(类似的joomla实例表)

4

1 回答 1

1

您编写类的方式如下,很明显,如果未提供它,它将采用空值。

class TblUser{

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

那么你有两个解决方案

  1. update()函数中,您将对象初始化为$myTableUser->id = $id
  2. 在表中添加调用的列级约束NOT NULL,以便在插入null值时抛出异常。
于 2012-08-30T05:38:49.783 回答