搜索
系统检测到您的用户名不符合规范:

模型静态调用 update 的返回值疑问

浏览:1375 发布日期:2018年03月01日 分类:ThinkPHP5专区
版本:5.1.5
问题描述:
有一个 User 模型,在控制器中使用如下的更新代码:User::update([
'nickname' => 'hello2',
], ['id' => 1]);
var_dump($user);
文档 https://www.kancloud.cn/thinkphp/master-database-and-model/265556 说该方法返回模型的对象实例,实际效果为:C:\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' 属性,所以这个返回值好像作用不大,没什么场合会用到它。
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
dclchj
积分:2138 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /