一、 数据库基础配置属性
这些属性用于定义模型与数据库表之间的对应关系。
protected $connection:用于指定当前模型使用的数据库连接配置。如果不设置,则使用系统默认的数据库连接。
protected $table:指定模型对应的数据表名称。通常建议包含完整的表名(例如 think_user)。
protected $name:指定模型对应的数据表名(不含前缀)。框架会自动加上数据库配置中的前缀,这是定义模型最简单的方式。
protected $pk:指定当前数据表的主键字段名。默认值为 id,如果你的数据库主键不是 id(例如是 uid),则必须显式定义。
二、 自动时间戳属性
这些属性用于处理 create_time 和 update_time 字段的自动化逻辑。
protected $autoWriteTimestamp:用于开启自动时间戳写入功能。
false:关闭(默认)。
true:开启,默认字段格式为 datetime。
'int':开启,存储为时间戳格式。
'datetime':开启,存储为 Y-m-d H:i:s 格式。
protected $createTime:定义数据表中的“创建时间”字段名。如果设置为 false,则表示不记录创建时间。
protected $updateTime:定义数据表中的“更新时间”字段名。如果设置为 false,则表示不记录更新时间。
三、 数据类型与字段保护属性
这些属性用于控制数据的存取、格式化和安全性。
protected $type:定义字段类型转换。常用于将数据库中的 JSON 字符串自动转换为 PHP 数组,或将数值强制转换为整型。例如:['status' => 'integer', 'info' => 'json']。
protected $field:定义允许操作的字段列表(白名单)。设置后,只有这些字段可以被写入数据库,其它非法字段会被过滤掉。
protected $readonly:定义只读字段。一旦数据写入后,这些字段的值就不能再被更新。
protected $hidden:定义隐藏字段。当模型数据转换为数组或 JSON(调用 toArray() 或 toJson())时,这些字段不会被包含在结果中(常用于保护密码)。
protected $visible:定义显示字段(白名单)。只有定义在该数组中的字段才会被包含在输出结果中。
protected $append:追加属性。用于在模型数据中追加由“获取器”定义的虚拟字段,使其在 toArray() 时可见。
四、 自动完成属性
这些属性在数据写入数据库前自动进行预处理。
protected $insert:定义在新增(insert)数据时需要自动填充的字段及对应的默认值。
protected $update:定义在更新(update)数据时需要自动填充的字段及对应的默认值。
protected $auto:定义在新增和更新时都会自动处理的字段及默认值。
五、 查询范围属性
用于统一查询规则。
protected $globalScope:设置全局查询范围。定义后,该模型的所有查询操作默认都会带上这些限定条件,例如 ['status' => 1] 会让所有查询都默认只查状态为 1 的数据。
六、 其它辅助属性
protected $schema:手动定义数据表字段信息。在某些无法自动获取表结构的特殊环境下(如数据库连接权限受限),通过手动定义字段名和类型,可以提高性能并确保程序正常运行。
protected $data:模型当前的数据对象集合(内部使用,通常不直接在类属性中定义,但作为属性存在)。
protected $relation:存储模型关联数据。
protected $error:存储最近一次模型操作产生的错误信息。
ThinkPHP 5.1 模型中常用 protected 属性的全面整理与教程
shitouadmin
2026-07-20 08:31:58
¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!
支付宝扫一扫打赏
微信扫一扫打赏
本文《ThinkPHP 5.1 模型中常用 protected 属性的全面整理与教程》发布于石头博客文章,作者:shitouadmin,如若转载,请注明出处:https://www.pweb123.com/kuangjia/thinkphp/1238.html,否则禁止转载,谢谢配合!
下一篇:最后一页
您可能感兴趣
阅读排行
- 1有thinkphp5.1开发的TSCMS基础功能完成上线
- 2thinkphp5.0 $this->result报错 variable type error: array
- 3tp5.1安装汉字转拼音扩展
- 4ThinkPHP 5.1 模型中常用 protected 属性的全面整理与教程
- 5thinkphp5.1对接ueditor(自定义上传接口)
- 6thinkphp出现unserialize(): Error at offset 0 of 1853 bytes
- 7thinkphp5常用查询where写法
- 8Thinkphp的模型中的$append用法
- 9Thinkphp中的collection用法
- 10tp下order和orderRaw用法和区别
小程序插件
站长推荐
-
DEDECMS 小程序插件简介 2.0
- 193
-
-
-
百度小程序审核被拒原因--汇总各种奇葩原因
- 788
-
-
-
重新对百度支付进行编写封装(百度智能小程序支付)
- 533
-
-
phpcms v9修改flash上传为h5上传方法
- 1075
-
phpcms小程序插件api接口升级到4.3
- 984
添加微信好友

















文章点评