问题描述:
有一个 User 模型,在控制器中使用如下的更新代码:
User::update([
'nickname' => 'hello2',
], ['id' => 1]);
var_dump($user);文档 https://www.kancloud.cn/thinkphp/master-databaC:\wamp64\www\tshop\application\index\controller\Index.php:13:
object(app\admin\model\User)[20]
public 'data' =>
array (size=2)
'nickname' => string 'hello2' (length=6)
'update_time' => int 1519888810
public 'relation' =>
array (size=0)
empty返回的是一个 User 模型对象实例,但里面只有 nickname 和 update_time 两个更新过数据的记录。然后修改执行下面的查询语句:
$user = User::update(['nickname' => 'hello1'], [['id', '<', 3]]);
var_dump($user);返回值与上面基本一样,实际上这条语句修改了两条记录。我觉得 update 返回值改为影响的记录数更实用。像上面那样返回一个对象实例,data 的值只有修改过的字段,如果影响多条记录也只返回一个对象,有些不实用。
PS: 这种情况怎样获得影响的记录数?
而且$user = User::update(['nickname' => 'hello1', 'emailllllll' => 'test@qq.com'], ['id', 1]); 中 'emailllllll' 是数据表中不存在的字段名,代码执行以后,返回的 $User 对象含有 'emailllllll' 属性,所以这个返回值好像作用不大,没什么场合会用到它。
最佳答案