Eyoucms程序开发:数组访问和转换
数组访问
版本 | 新增功能 |
---|---|
5.0.10 |
增加removeRelation 方法去除所有的关联属性 |
5.0.5 |
hidden 、visible 和append 方法支持关联属性 |
5.0.4 |
增加appendRelationAttr 方法追加关联模型的属性 |
模型对象支持数组方式访问,例如:
$user = User::find(1);
echo $user->name ; // 有效
echo $user['name'] // 同样有效
$user->name = 'thinkphp'; // 有效
$user['name'] = 'thinkphp'; // 同样有效
$user->save();
转换为数组
可以使用toArray
方法将当前的模型实例输出为数组,例如:
$user = User::find(1);
dump($user->toArray());
支持设置不输出的字段属性:
$user = User::find(1);
dump($user->hidden(['create_time','update_time'])->toArray());
数组输出的字段值会经过获取器的处理,也可以支持追加其它获取器定义(不在数据表字段列表中)的字段,例如:
$user = User::find(1);
dump($user->append(['status_text'])->toArray());
支持设置允许输出的属性,例如:
$user = User::find(1);
dump($user->visible(['id','name','email'])->toArray());
如果是数据集查询的话有两种情况,由于默认的数据集返回结果的类型是一个数组,因此无法调用toArray
方法,必须先转成数据集对象然后再使用toArray
方法,系统提供了一个collection
助手函数实现数据集对象的转换,代码如下:
$list = User::all();
if($list) {
$list = collection($list)->toArray();
}
如果设置了模型的数据集返回类型的话,则可以简化使用
Model;
class User extends Model
{
protected $resultSetType = 'collection';
}
然后就可以直接使用
$list = User::all();
$list = $list->toArray();
追加关联模型的属性(V5.0.4+
)
V5.0.4+
版本开始,支持追加一对一关联模型的属性到当前模型,例如:
$user = User::find(1);
dump($user->appendRelationAttr('profile',['email','nickname'])->toArray());
profile
是关联定义方法名,email
和nickname
是Profile
模型的属性。
支持关联属性(V5.0.5+
)
模型的visible
、hidden
和append
方法支持关联属性操作,例如:
$user = User::get(1,'profile');
// 隐藏profile关联属性的email属性
dump($user->hidden(['profile'=>['email']])->toArray());
// 或者使用
dump($user->hidden(['profile.email'])->toArray());
hidden
、visible
和append
方法同样支持数据集对象。
相关文档
- 免费Discuz论坛怎么用?有啥好处?功能全活儿超适合新手
- 免费论坛群发器好用吗?核心功能模块拆解及基本概念介绍
- SMO优化是什么?有啥作用?做好它能给网站带来更多访问量
- 百中搜优化软件是啥?有啥用?功能模块大揭秘
- 企业门户:现代办公数字化平台,功能模块搭建要点有哪些?
- 凡科建站:网站建设领域有名堂,功能强大助你轻松建站
- 百度空间介绍:能创建个人网页,有写日志等多种功能
- 站优云:网络人关注的平台,其功能模块你了解多少?
- 关键词排名工具是啥?能帮上忙吗?查询核心功能模块了解下
- 天津SEO旺道是啥?能否助力网站优化?功能实效需考量
- 百度移动应用受众多手机用户青睐,功能亮点大揭秘
- 枫林SEO走红网络,这工具的关键词分析功能太绝了
- 快速排名工具怎么选怎么用?核心功能选择要点你知道吗?
- 谷歌站长平台工具:搜索效果报告 功能解读
- 搜狗快照是什么?应急访问、历史比对超有用!使用步骤来了
- 虫虫博客群发功能虽操作简单,实际使用却状况百出
- 下载旺道SEO优化软件,界面丑功能差,老站长满心失落
- 惊删电脑重要文件?别怕!快照回档功能来救你
- 试用站优云:界面复古功能全,自动优化能否给网站带来改变?
- 乐云SEO排名软件:界面丑但功能实在,是SEOer偷懒工具?
上一篇: Eyoucms程序开发:模型分层
下一篇: Eyoucms程序开发:JSON序列化