$dataProvider->getModels 如何控制输出的字段? [ 2.0 版本 ]
我现在做了一个前端接口,直接通过
$dataProvider = $searchModel->search($data);
$list = $dataProvider->getModels();
这样的方式获取的数据,但是直接返回前端的时候是包含表中所有字段的,有些还是敏感字段,有什么方法可以控制输出的字段吗?
不自己循环返回值。
最佳答案
-
$searchModel = new UnitSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); echo '<pre>'; print_r($dataProvider->getModels());
Array ( [0] => app\modules\unit\models\Unit Object ( [_attributes:yii\db\BaseActiveRecord:private] => Array ( [id] => 1 ) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ( [id] => 1 ) [_related:yii\db\BaseActiveRecord:private] => Array ( )
$query->select(['id']);
如果这个设置 就是显示这个字段
其他 1 个回答
-
qqa4560354 回答于 2018-05-30 16:53 举报
fields方法控制输入字段
共 4 条回复qqa4560354 回复于 2018-05-31 19:33 回复@wmwmajie 直接给你贴代码吧
qqa4560354 回复于 2018-05-31 19:36 回复public function fields() { $fields = [ 'seek_id', 'create_user_id', 'sos_type_id', 'status_id', 'comment_times', 'transfer_times', 'view_times', 'content', 'title', 'pet_name', 'pet_imgs', 'lose_pick_area', 'pet_category', 'contact_phone', 'contact_name', 'lose_pick_time', 'sos_lng', 'sos_lat', ]; $fields['lose_pick_time2']=function($model) { if(empty($model->lose_pick_time)) { return null; } return $this->_timeProvider($model->lose_pick_time); }; } /* * 初始化 */ public function init(){ parent::init(); $this->_query = self::find(); }
wmwmajie
注册时间:2018-05-30
最后登录:2021-02-22
在线时长:3小时12分
最后登录:2021-02-22
在线时长:3小时12分
- 粉丝1
- 金钱25
- 威望0
- 积分55