QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

Thinkphp

ThinkPHP 5.1 模型中常用 protected 属性的全面整理与教程

 shitouadmin  2026-07-20 08:31:58
一、 数据库基础配置属性
这些属性用于定义模型与数据库表之间的对应关系。
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,如若转载,请注明出处:https://www.pweb123.com/kuangjia/thinkphp/1238.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序