我使用CodeIgniter的活动记录,我遇到了一个问题:
我在库中有一个类:
class TblUser {
var $id = null;
var $name = null;
var $age = null;
}
在模型中我有一个类:
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 insteance表)
答案 0 :(得分:1)
你按照如下方式编写类的方式,很明显,如果没有提供它,它将采用null值。
class TblUser{
var $id = null;
var $name = null;
var $age = null;
}
然后你有两个解决方案
update()
功能中,您将对象初始化为$myTableUser->id = $id
; NOT NULL
的列级约束,以便在插入null
值时抛出异常。