| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- <?php
- namespace common\models\base;
- use yii\elasticsearch\ActiveRecord;
- class EsBaseActiveRecord extends ActiveRecord
- {
- public static function listPage($params = [], $count = false, $is_array = true)
- {
- $must = [];
- $obj =self::find();
- $data = [];
- if (!empty($params['where'])) {
- foreach ($params['where'] as $v) {
- $must[] = ['match' => $v];
- }
- $obj->query(['bool' => ['must' => $must]]);
- }
- if ($count) {
- $counts = $obj->count();
- $page = $params['page'] ?? 1;
- $page_size = $params['limit'] ?? 20;
- $page_count = ceil($counts / $page_size);
- $data['page_count'] = $page_count;
- $data['count'] = $count;
- $data['page_size'] = $page_size;
- $obj->offset($page - 1)->limit($page_size);
- }
- $obj->orderBy($params['order']??' created_at asc');
- if ($is_array) $obj->asArray();
- $list = $obj->all();
- foreach ($list as $v) {
- $data['list'][] = $v['_source'];
- }
- return $data;
- }
- }
|