ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> ## 对象数据支持数组方式访问和赋值 ``` $user = User::find(1); echo $user->name ; // 有效 echo $user['name'] // 同样有效 $user->name = 'thinkphp'; // 有效 $user['name'] = 'thinkphp'; // 同样有效 $user->save(); ``` > ## 对象格式转换为数组格式 ``` $user = User::find(1); // 转换为数组 dump($user->toArray()); // 隐藏指定属性 dump($user->hidden(['create_time','update_time'])->toArray()); // 追加获取器中生成的表中不存在的字段到属性列表 dump($user->append(['status_text'])->toArray()); // 允许指定属性输出 dump($user->visible(['id','name','email'])->toArray()); // 如果结果集为数组非对象,则不能调用toArray方法,这时候需要把数组转为对象再调用 $list = User::all(); if($list) { $list = collection($list)->toArray(); } // 还可以直接在模型类中定义数据集返回类型,这样就都返回对象了,可以直接调用toArray protected $resultSetType = 'collection'; // 将关联模型的属性追加到结果集 $user = User::find(1); // profile为定义的关联方法名,email和nickname为模型Profile的属性 dump($user->appendRelationAttr('profile',['email','nickname'])->toArray()); // 如果是移除用:removeRelation(5.0.10+),同上 ``` > ## visible、hidden和append方法不仅支持数组,还支持数据集对象,同样支持关联模型 ``` $user = User::get(1,'profile'); // 隐藏profile关联属性的email属性 dump($user->hidden(['profile'=>['email']])->toArray()); // 或者使用 dump($user->hidden(['profile.email'])->toArray()); ```