1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | class User extends Model { #以下属性和方法都不是必须的,但是一般都要按需求定义一些 //定义关联的表名,不定义的话默认此模型关联的表为 模型名s (users) protected $table = 'user' ; /******字段相关*******/ #定义主键字段名,默认是id protected $primaryKey = 'uid' ; #定义字段白名单,允许操作表中的哪些字段 protected $fillable = [ 'uid' , 'name' ]; #定义字段黑名单,不允许操作表中哪些字段 protected $guarded = []; //1、使用model::create([])等方法直接对orm对象操作使,必须定义$guarded或者$fillable //2、使用$m = new model();然后$m->save()的方式不需要定义 //3、简便的方式就是定义$fillable = []; #定义隐藏的字段 protected $hidden = []; /******时间管理******/ #定义是否默认维护时间,默认是true.改为false,则以下时间相关设定无效 public $timestamps = true ; #定义数据行创建时间和修改时间的字段名称。默认created_at,updated_at,没有设null const CREATED_AT = 'created' ; const UPDATED_AT = null ; #此属性决定插入和取出数据库的格式,默认datetime格式,'U'是int(10) protected $dateFormat = 'U' ; //如果不设置,无论存储格式是datetime还是int,则取出时是Carbon对象 //Carbon对象返给前端时自动变为datetime字符串,后端谨慎处理 #如果数据库存的是datetime或者没定义$dateFormat,又想取出的时候是int... public function getDates(){ return [ 'created_at' ]; } //这里只能是created_at,updated_at,不是你自己的字段 #软删除字段deleted_at use Illuminate\Database\Eloquent\SoftDeletes; protected $dates = [ 'deleted_at' ]; #查询数据时会自动排除掉deleted_at非null的数据,若向带上使用User::withTrashed() #删除某条数据时使用$user->delete()然后save()即可。deleted_at由null变为时间. /******序列化******/ #toArray和toJson就是序列化方法,都是递归的。 #把ORM查询的数据自动转换。例如把int转boolean,时间戳转时间,json转成数组等。 protected $casts = [ 'created' => 'date:Y-m-d' , 'updated' => 'datetime:Y-m-d H:i' , 'jsonData' => 'array' , 'intSwitch' => 'boolean' ]; //关于这个时间的序列化,当作为接口返回的时候有效,如果直接直接页面渲染无效. //时间序列化,当$timestamp为true时,无论是update还是new的方式插入新数据,都要是datetime //注意取出的jsonData即是数组,而插入jsonData时也得是数组,不要json_encode /**自定义数据返回***/ #再如果,你想拿出来就是'2018/08/08 12:00'这种自定义格式,好比'sa_time' public function getSaTimeAttribute($value){ return date( 'Y/m/d H:i' ,$value); } //注意方法名是根据字段来的。同理,这种方法可以处理任何字段 } |
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/articles/10143861.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能