如何获取部分字段?(使用find或fandAll/One) [ 2.0 版本 ]
如何获取部分字段?
举个栗子:User表内,我只想知道createTime > 1491734306的id,而不需要其他字段。
顺便向老司机请教:我听说效率最高的方式是获取“我需要的字段”,而非整条。
目前所知道的所有Find方法,都只能得到整条数据。
是我了解的信息有误,还是Yii2没有对这方面做“效率考量”?
最佳答案
其他 2 个回答
-
如楼上所言。
这些都是基础的东西,yii怎会没有考虑到。
基础文档啥的,还是要先看一看的。
http://www.yiichina.com/doc/guide/2.0/db-query-builder -
asArray()->all()好像还是不太完美,因为涉及连接表的字段的话,就会以数组下标形式存在
比如主表是A,某些信息需要连接表B来查,那么代码类似这样:
$retArr = A::find()->select(['A.name','A.age','B.school'])->joinWith('B')->filterWhere(['dddd'=>[$a,$b])->asArray()->all();
这样的数组$retArr信息除了'name','age','school'之外,还有一个'B'为下标的子数组,这个数组就是多余的
共 2 条回复
狼骑舞者
注册时间:2016-02-05
最后登录:2018-12-20
在线时长:10小时36分
最后登录:2018-12-20
在线时长:10小时36分
- 粉丝3
- 金钱69
- 威望0
- 积分169