Yii2 AR模型搜索数据条数不对,AR模型默认去重

最近在做Yii2的项目时, 发现了一个yii2 自带的Ar模型会自动对搜索出来的字段去重。

默认去重字段: id,  其他字段暂没发现

1. 例如:

1 public function fields
2 {
3      //aboutClass表的ID 
4     id => about_class_id   
5 }

如果搜索关系是一对多的关系,那么搜索出来的about_class_id 有重复,这时你给about_class_id 命名为id,因为yii2对id字段默认去重,就会出现数据条数变少的情况

解决方案:

1 public function fields
2 {
3     //换字段名称
4    aboutClassId => about_class_id
5 }

2. 例如

 1 public function selectFields()
 2 {
 3 $data = \common\models\base\AboutClass::find()
 4       ->select('
 5        //取别名ID
 6         about_class_id id,
 7         name,
 8         type
 9        ')
10        ->where(['status' => 5])
11        ->asArray()
12        ->all();
13     return $data;
14 }

这里的select里面的id字段也会同上一样,被默认去除重复数据, 解决方案和上面例子1一样。

总结:

Yii2会对AR模型里字段名id的数据去重。

以上为本人自身观点,如有不同见解,望不奢指教!同时,也希望对读者有所帮助。

posted @ 2018-06-10 22:27  clevstn  阅读(1128)  评论(0编辑  收藏  举报