ThinkPHP自动完成的修改数据对象方法使用:
在使用create方法创建好数据对象之后,此时的数据对象保存在内存中,因此仍然可以操作数据对象,包括修改或者增加数据对象的值,例如:
$User = D("User"); // 实例化User对象 $User->create(); // 生成数据对象 $User->status = 2; // 修改数据对象的status属性 $User->register_time = NOW_TIME; // 增加register_time属性 $User->add(); // 新增用户数据
一旦调用了add方法(或者save方法),创建在内存中的数据对象就会失效,如果希望创建好的数据对象在后面的数据处理中再次调用,可以保存数据对象先,例如:
$User = D("User"); // 实例化User对象 $data = $User->create(); // 保存生成的数据对象 $User->add();
不过要记得,如果你修改了内存中的数据对象并不会自动更新保存的数据对象,因此下面的用法是错误的:
$User = D("User"); // 实例化User对象 $data = $User->create(); // 保存生成的数据对象 $User->status = 2; // 修改数据对象的status属性 $User->register_time = NOW_TIME; // 增加register_time属性 $User->add($data);
上面的代码我们修改了数据对象,但是仍然写入的是之前保存的数据对象,因此对数据对象的更改操作将会无效。