/** * * @return type */ public function run() { $data = new ActiveDataProvider(['query' => $this->query, 'pagination' => ['class' => Pagination::class, 'pageSize' => $this->recordOnPage]]); $data->query->addOrderBy($this->sort); if (Yii::$app->getRequest()->isAjax) { Yii::$app->getResponse()->format = Response::FORMAT_JSON; return $this->controller->renderPartial($this->view, ['model' => $data->getModels()]); } else { $this->controller->layout = $this->layout; return $this->controller->render($this->view, ['model' => $data->getModels(), 'pages' => $data->getPagination()]); } }
/** * @inheritdoc */ public function run() { $citeProcessor = Yii::createObject('CiteProcessor'); $citeProcessor->init($this->csl, $this->locale); $references = []; foreach ($this->dataProvider->getModels() as $model) { $mapper = new CiteProcMapper($model); $reference = $mapper->map(); $references[$model->id] = $reference; } return $this->render('bibliography', ['widgetId' => $this->getId(), 'references' => $references, 'row' => function ($reference, $mode) use($citeProcessor) { return $citeProcessor->render($reference, $mode); }]); }
/** * @inheritDoc */ public function init() { parent::init(); foreach ($this->columns as $key => $column) { if (is_array($column)) { $this->columns[$key] = \Yii::createObject(ArrayHelper::merge(['activeDataProvider' => $this->activeDataProvider], $column)); } } $this->activeDataProvider->pagination = ['defaultPageSize' => false, 'pageSizeLimit' => false]; $this->reader = \PHPExcel_IOFactory::createReader(\PHPExcel_IOFactory::identify($this->filename)); $this->reader->setReadDataOnly(true); $this->phpExcel = $this->reader->load($this->filename); $this->models = ArrayHelper::map($this->activeDataProvider->getModels(), 'primaryKey', function ($item) { return $item; }); }
/** * Returns categories. * @return Category[] */ public function show() { $query = self::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $dataProvider->sort->defaultOrder = ['sort' => SORT_ASC, 'id' => SORT_ASC]; return $dataProvider->getModels(); }
public function actionView($id) { if ($id <= 0) { $this->goHome(); } $allCategory = Category::find()->asArray()->all(); $arrayCategoryIdName = ArrayHelper::map($allCategory, 'id', 'name'); $arrSubCat = Category::getArraySubCatalogId($id, $allCategory); /****** 价格筛选 ****/ $result = (new Query())->select('min(price) as min, max(price) as max')->from('product')->where(['category_id' => $arrSubCat, 'status' => Status::STATUS_ACTIVE])->one(); $min = $result['min']; $max = $result['max']; if ($max > $min && $max > 0) { // 计算跨度 $priceGrade = 0.0001; for ($i = -2; $i < log10($max); $i++) { $priceGrade *= 10; } $span = ceil(($max - $min) / 5 / $priceGrade) * $priceGrade; if ($span == 0) { $span = $priceGrade; } // 计算价格的起点和终点 for ($i = 1; $min > $span * $i; $i++) { } for ($j = 1; $min > $span * ($i - 1) + $priceGrade * $j; $j++) { } $priceFilter['start'] = $span * ($i - 1) + $priceGrade * ($j - 1); for (; $max >= $span * $i; $i++) { } $priceFilter['end'] = $span * $i + $priceGrade * ($j - 1); $priceFilter['span'] = $span; } /****** 价格筛选 end ****/ /****** 品牌筛选 start ****/ $result = (new Query())->select('distinct(brand_id)')->from('product')->where(['category_id' => $arrSubCat, 'status' => Status::STATUS_ACTIVE])->all(); $ids = ArrayHelper::map($result, 'brand_id', 'brand_id'); $brandFilter = Brand::find()->where(['id' => $ids])->orderBy(['name' => SORT_ASC])->all(); /****** 品牌筛选 end ****/ $query = Product::find()->where(['category_id' => $arrSubCat, 'status' => Status::STATUS_ACTIVE]); // 如果选择了价格区间 if (Yii::$app->request->get('max')) { $min = intval(Yii::$app->request->get('min')); $max = intval(Yii::$app->request->get('max')); if ($min >= 0 && $max) { $query->andWhere(['and', ['>', 'price', $min], ['<=', 'price', $max]]); } } // 如果选择了品牌 if (Yii::$app->request->get('brand_id')) { $brandId = intval(Yii::$app->request->get('brand_id')); if ($brandId >= 0) { $query->andWhere(['brand_id' => $brandId]); } } // 侧边热销商品 $sameCategoryProducts = Product::find()->where(['category_id' => $id])->orderBy(['sales' => SORT_DESC])->limit(5)->all(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['defaultPageSize' => Yii::$app->params['defaultPageSizeProduct']], 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]); return $this->render('view', ['model' => $this->findModel($id), 'allCategory' => $allCategory, 'arrayCategoryIdName' => $arrayCategoryIdName, 'products' => $dataProvider->getModels(), 'pagination' => $dataProvider->pagination, 'priceFilter' => isset($priceFilter) ? $priceFilter : null, 'brandFilter' => $brandFilter, 'sameCategoryProducts' => $sameCategoryProducts]); }
protected function fillModels() { $models = $this->dataProvider ? $this->dataProvider->getModels() : $this->query->all(); foreach ($models as $model) { $this->_models[] = new Model(['instance' => $model, 'standardModel' => $this->_standardModels[0]]); } }
/** * Lists all Applyjobs models. * @return mixed */ public function actionSearch() { $data = Yii::$app->request->post(); $longitude = $data['longitude']; $latitude = $data['latitude']; $query = (new \yii\db\Query())->select('daters.*,users.phone,users.nickname,users.thumb,hobbies.hobby')->from('daters')->orderBy(sprintf('abs(daters.longitude - %f) + abs(daters.latitude - %f)', $longitude, $latitude))->join('INNER JOIN', 'users', 'daters.userid = users.id')->join('INNER JOIN', 'hobbies', 'daters.hobbyid = hobbies.id'); $dataProvider = new ActiveDataProvider(['query' => $query]); //$this->load($params); //$value = 0; if (!empty($data)) { if (isset($data['phone'])) { $query->andFilterWhere(['users.phone' => $data['phone']]); } if (isset($data['hobbyid'])) { $query->andFilterWhere(['hobbyid' => $data['hobbyid']]); } if (isset($data['content'])) { $query->andFilterWhere(['like', 'content', $data['content']]); } } $daters = $dataProvider->getModels(); //$result = array (); //$result ['item'] = array (); //$tbreplys = (new \yii\db\Query ())->select('tbreplys.*,users.phone,users.nickname,users.thumb')->orderBy ( "tbreplys.created_at desc" )->join ( 'INNER JOIN', 'users', ' tbmessages.userid =users.id ')->where('tbreplys.messageid in '); foreach ($daters as $i => $dater) { $info = $dater; $info["distance"] = $this->getDistance($latitude, $longitude, $info['latitude'], $info['longitude']); $daters[$i] = $info; } $dataProvider->setModels($daters); return $dataProvider; }
/** * @return string */ public function actionList() { $name = Yii::$app->getRequest()->get('name'); $tagModel = ''; if (isset($name)) { /** @var Tag $tagModel */ $tagModel = Tag::findOne(['name' => $name]); if (!$tagModel) { throw new NotFoundHttpException(); } } $query = Topic::find()->select('*')->from('topic t')->with('tags', 'firstPostUser', 'lastPostUser'); if (isset($name)) { $query->innerJoin('tag_topic_assignment tta', 'tta.topic_id = t.id')->where(['tta.tag_name' => $name]); } $sort_by = Yii::$app->getRequest()->get('sort_by'); if (!$sort_by || $sort_by == 'new') { $query->orderBy(['t.last_post_created_at' => SORT_DESC]); } elseif ($sort_by == 'unanwser') { $query->andWhere(['t.number_posts' => 0])->orderBy(['t.last_post_created_at' => SORT_DESC]); } elseif ($sort_by == 'own') { $id = Yii::$app->getUser()->getId(); $query->andWhere(['t.first_post_user_id' => $id])->orderBy(['t.last_post_created_at' => SORT_DESC]); } $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['forcePageParam' => false, 'pageSizeLimit' => false, 'defaultPageSize' => Yii::$app->config->get('display_topics_count')]]); $topics = $dataProvider->getModels(); return $this->render('list', ['dataProvider' => $dataProvider, 'tagModel' => $tagModel, 'topics' => $topics]); }
/** * Creates data provider instance with search query applied * * @param array $params * @param bool $unimproved * * @return ActiveDataProvider */ public function search($params = [], $unimproved = false) { $query = Release::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params, ''); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'mod_id' => $this->mod_id, 'status' => $this->status, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); $query->andFilterWhere(['<', 'publish_at', $this->publish_at]); $query->andFilterWhere(['like', 'version', $this->version]); $query->andFilterWhere(['like', 'file_name', $this->version]); if ($unimproved) { $models = $dataProvider->getModels(); $keys = $dataProvider->getKeys(); $unimproved = $this->mod->getUnimprovedReleases($models); foreach ($unimproved as $release) { array_unshift($models, $release); $keys[] = key($models); } $dataProvider->setModels($models); $dataProvider->setKeys($keys); } return $dataProvider; }
public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Collection::find()->where(['author_id' => Yii::$app->user->id])]); $totalCount = $dataProvider->getTotalCount(); $pages = new Pagination(['totalCount' => $totalCount]); return $this->render('index', ['models' => $dataProvider->getModels(), 'pages' => $pages]); }
/** * Lists all Applyjobs models. * @return mixed */ public function actionSearch() { $data = Yii::$app->request->post(); $longitude = $data['longitude']; $latitude = $data['latitude']; $query = (new \yii\db\Query())->select('applyjobs.*,users.phone,users.nickname,users.thumb,professions.profession')->from('applyjobs')->orderBy(sprintf('abs(applyjobs.longitude - %f) + abs(applyjobs.latitude - %f)', $longitude, $latitude))->join('INNER JOIN', 'users', 'applyjobs.userid = users.id')->join('INNER JOIN', 'professions', 'applyjobs.professionid = professions.id'); $dataProvider = new ActiveDataProvider(['query' => $query]); //$this->load($params); //$value = 0; if (!empty($data)) { if (isset($data['phone'])) { $query->andFilterWhere(['users.phone' => $data['phone']]); } if (isset($data['professionid'])) { $query->andFilterWhere(['professionid' => $data['professionid']]); } if (isset($data['jobproperty'])) { $query->andFilterWhere(['jobproperty' => $data['jobproperty']]); } if (isset($data['title'])) { $query->andFilterWhere(['like', 'title', $data['title']]); } } $applyjobs = $dataProvider->getModels(); foreach ($applyjobs as $i => $applyjob) { $info = $applyjob; $info["distance"] = $this->getDistance($latitude, $longitude, $info['latitude'], $info['longitude']); $applyjobs[$i] = $info; } $dataProvider->setModels($applyjobs); return $dataProvider; }
public function actionLeaveAndOvertime() { $searchModel = new UserDateSearch(); $dataProvider = $searchModel->searchUser(Yii::$app->request->queryParams, Yii::$app->user->id); //$dataProvider = Application::find()->where(['user_id'=>Yii::$app->user->id]); $query = Application::find(); $query->joinWith(['user', 'reasonApplication']); $query->where(array('application.user_id' => Yii::$app->user->id, 'manager_ok' => 1, 'hrm_ok' => 1)); $query->andWhere('type_id = 1 OR type_id = -1 OR type_id = -11'); $query->orderBy(['from_date' => SORT_DESC]); $dataProviderUserTimeOver = new ActiveDataProvider(['query' => $query]); $totalTimeOverWork = 0; $totalTimeLeaveOfTimeOver = 0; $totalTimeMoney = 0; foreach ($dataProviderUserTimeOver->getModels() as $model) { if ($model->reasonApplication->type_id == 1) { $totalTimeOverWork += $model->hours_off; } else { if ($model->reasonApplication->type_id == -1) { $totalTimeLeaveOfTimeOver += $model->hours_off; } else { if ($model->reasonApplication->type_id == -11) { $totalTimeMoney += $model->hours_off; } } } } return $this->render('leave-and-overtime', ['dataProvider' => $dataProvider, 'dataUserTimeOver' => $dataProviderUserTimeOver, 'totalTimeOverWork' => $totalTimeOverWork, 'totalTimeLeaveOfTimeOver' => $totalTimeLeaveOfTimeOver, 'totalTimeMoney' => $totalTimeMoney, 'totalRemainTime' => $totalTimeOverWork - $totalTimeLeaveOfTimeOver - $totalTimeMoney]); }
protected function writeData(\PHPExcel_Worksheet $worksheet) { foreach ($this->activeDataProvider->getModels() as $row => $model) { foreach ($this->columns as $col => $column) { $columnIndex = \PHPExcel_Cell::stringFromColumnIndex($col) . ($row + 2); switch ($column->format) { case Column::FormatRaw: $worksheet->setCellValue($columnIndex, $column->getValue($model)); break; case Column::FormatUri: $worksheet->setCellValue($columnIndex, $column->getValue($model)); $worksheet->getCell($columnIndex)->getHyperlink()->setUrl('"' . $column->getValue($model) . '"'); break; } } } }
public function actionList($event_id) { \Yii::$app->response->format = Response::FORMAT_JSON; $dp = new ActiveDataProvider(); $dp->query = Comment::find()->with('user')->where(['event_id' => $event_id])->orderBy(['id' => SORT_DESC]); $dp->pagination->pageSize = 6; return ['items' => $dp->getModels(), 'pageCount' => $dp->getPagination()->getPageCount(), 'totalCount' => $dp->getTotalCount(), 'page' => $dp->pagination->page, 'count' => $dp->getCount()]; }
/** * @param $id * @return string */ public function actionView($id) { /* @var SiteModels $forum */ $forum = SiteModels::findOne(['id' => $id]); $query = TopicModels::find()->where(['forum_id' => $id])->orderBy(['sticked' => SORT_DESC])->addOrderBy(['last_post_created_at' => SORT_DESC]); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['forcePageParam' => false, 'pageSizeLimit' => false, 'defaultPageSize' => Yii::$app->config->get('display_topics_count')]]); $topics = $dataProvider->getModels(); return $this->render('view', ['dataProvider' => $dataProvider, 'forum' => $forum, 'topics' => $topics]); }
/** * Lists all Message models. * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Message::find()->select('MAX(id) AS id, COUNT(id) AS msgCount')->where(['user_id' => Yii::$app->user->id])->groupBy('friend_id')->asArray()->orderBy('id desc')]); $arr = $dataProvider->getModels(); $ids = ArrayHelper::getColumn($arr, 'id'); $models = Message::find()->with('senderUser', 'receiverUser')->where(['id' => $ids])->all(); $pages = new Pagination(['totalCount' => $dataProvider->getTotalCount()]); return $this->render('index', ['models' => $models, 'count' => ArrayHelper::getColumn($arr, 'msgCount'), 'pages' => $pages]); }
public function query(BrandDto $brandDto, array $pageParams, array $sortParams) { $query = Brand::find(); //增加filter $pagination = new Pagination(array_merge($pageParams, ['totalCount' => $query->count()])); $sort = new Sort(['defaultOrder' => $sortParams]); $provider = new ActiveDataProvider(['query' => $query, 'pagination' => $pagination, 'sort' => $sort]); return ['models' => ArrayHelper::toArray($provider->getModels()), 'pagination' => $pagination]; }
/** * Lists all MyClick models. * @return mixed */ public function actionIndex() { $query = (new \yii\db\Query())->select('article.*')->from('my_click')->where(['user_id' => \Yii::$app->user->id])->orderBy('my_click.id DESC'); $click_query = $query->limit(50)->join('LEFT JOIN', 'article', 'article.id = my_click.article_id'); $provide = new ActiveDataProvider(['query' => $click_query, 'pagination' => ['pageSize' => 10]]); $provide->prepare(); $pagination = $provide->getPagination(); return $this->render('index', ['data' => $provide->getModels(), 'pageCount' => $pagination->pageCount, 'page' => $pagination->page, 'links' => $pagination->getLinks()]); }
public function actionIndex() { $request = Yii::$app->request; $menuId = 31; $theadArray = QueryField::find()->where(['menuId' => $menuId])->asArray()->with('queryTable')->all(); $tables = QueryTable::find()->where(['menuId' => $menuId])->asArray()->all(); $masterTable = $this->getMasterTable($tables); if (!$masterTable) { $NullPages = new Pagination(['pageParam' => 'pageCurrent', 'pageSizeParam' => 'pageSize', 'totalCount' => 0, 'defaultPageSize' => 20]); return $this->render('index', ['models' => [], 'pages' => $NullPages, 'theadArray' => []]); } $query = new Query(); $query->from($masterTable['tabName']); $query->select($masterTable['tabName'] . '.' . 'id'); foreach ($tables as $table) { if ($table['isMain'] != '1') { $query->leftJoin($table['tabName'], $table['condition']); } } //排序字段 $attributes = []; //查询条件 $where = []; foreach ($theadArray as $thead) { if ($thead['queryTable']['reName']) { $addSelect = $thead['queryTable']['reName']; } else { $addSelect = $thead['queryTable']['tabName']; } $addSelect = $addSelect . '.' . $thead['fieldName']; if ($thead['makeTbName'] != 1) { $addSelect = $thead['fieldName']; } if ($thead['reName']) { //组装排序字段 array_push($attributes, $thead['reName']); //查询字段 $addSelect = $addSelect . ' ' . 'as' . ' ' . $thead['reName']; } else { array_push($attributes, $thead['fieldName']); } $query->addSelect($addSelect); //组装查询条件 if ($thead['isQuery'] == '1' && $thead['reName']) { $where[$thead['reName']] = $request->get($thead['reName']); } elseif ($thead['isQuery'] == '1') { $where[$thead['fieldName']] = $request->get($thead['fieldName']); } } $query->where($where); $pages = new Pagination(['pageParam' => 'pageCurrent', 'pageSizeParam' => 'pageSize', 'defaultPageSize' => 20]); $sort = new WetSort(['attributes' => $attributes]); $provider = new ActiveDataProvider(['query' => $query, 'pagination' => $pages, 'sort' => $sort]); $models = $provider->getModels(); return $this->render('index', ['models' => $models, 'pages' => $pages, 'theadArray' => $theadArray]); }
public function GetComments($page_id = 0, $limit = 10) { $query = self::find()->where(['page' => $page_id, 'active' => 1])->with('profile'); $cloneQuery = clone $query; $pagination = new Pagination(['totalCount' => $cloneQuery->count(), 'pageSizeParam' => false, 'pageSize' => $limit]); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => $pagination]); $result['items'] = $dataProvider->getModels(); $result['pagination'] = $pagination; return $result; }
public function queryWithConditions($conditions) { $query = (new \yii\db\Query())->select(['area', 'position_name', 'latitude', 'longitude', 'alias'])->from('area_position')->where($conditions); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => false]); $models = $dataProvider->getModels(); // modify models $models = $this->foldAreas($models); $dataProvider->setModels($models); return $dataProvider; }
public function actionFavorite($id) { $this->layout = '//u'; $user = User::findOne($id); \Yii::$app->view->params['model'] = $user; $dataProvider = new ActiveDataProvider(['query' => Collection::find()->where(['author_id' => $id])]); $totalCount = $dataProvider->getTotalCount(); $pages = new Pagination(['totalCount' => $totalCount]); return $this->render('favorites', ['models' => $dataProvider->getModels(), 'pages' => $pages, 'author' => $user]); }
public function actionIndex($cid = 1) { $allCategory = Category::find()->asArray()->all(); $arrayCategoryIdName = ArrayHelper::map($allCategory, 'id', 'name'); $arrSubCat = Category::getArraySubCatalogId($cid, $allCategory); $where = ['and', ['category_id' => $arrSubCat], 'status>=' . Status::STATUS_ACTIVE]; $query = News::find()->where($where); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['defaultPageSize' => 8], 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]); return $this->render('index', ['models' => $dataProvider->getModels(), 'pagination' => $dataProvider->pagination, 'cid' => $cid]); }
public function actionRead($id) { $taxonomy = Taxonomy::findByIdOrSlug($id); $children = $taxonomy->children()->all(); $ids = ArrayHelper::getColumn($children, "taxonomy_id"); array_unshift($ids, $taxonomy->getPrimaryKey()); $dataProvider = new ActiveDataProvider(['query' => TaxonomyIndex::find()->select(['entity', 'entity_id'])->distinct()->where(["taxonomy_id" => $ids])->orderBy(['taxonomy_index_id' => SORT_DESC]), 'pagination' => ['pageSize' => 15]]); list($title, $desc, $keys) = $taxonomy->getMetaData(); $this->getView()->setMetaData($title, $desc, $keys); return $this->render('view', ['taxonomyIndexs' => $dataProvider->getModels(), "pagination" => $dataProvider->getPagination(), "taxonomy" => $taxonomy]); }
public function search($data, $type) { if (!(isset($data) && isset($data['phone']) && isset($type))) { return array('flag' => 0, 'msg' => 'no enough arg!'); } $user = Users::findOne(['phone' => $data['phone']]); $query = (new \yii\db\Query())->select(['tbmessages.*', 'users.phone', 'users.nickname', 'users.thumb', 'if(isnull(concerns.id),0,1) as isconcerned', 'if(isnull(tblikes.id),0,1) as isliked'])->from('tbmessages')->join('INNER JOIN', 'users', 'tbmessages.userid =users.id'); switch ($type) { case 1: $query = $query->orderBy("tbmessages.created_at desc")->join('LEFT JOIN', 'concerns', 'tbmessages.userid = concerns.concernid and concerns.myid=:id', [':id' => $user['id']])->join('LEFT JOIN', 'tblikes', 'tblikes.tbmessageid =tbmessages.id and tblikes.userid=:id', [':id' => $user->id]); break; case 2: $query = $query->orderBy("tbmessages.likecount desc")->join('LEFT JOIN', 'concerns', 'tbmessages.userid = concerns.concernid and concerns.myid=:id', [':id' => $user['id']])->join('LEFT JOIN', 'tblikes', 'tblikes.tbmessageid =tbmessages.id and tblikes.userid=:id', [':id' => $user->id]); break; case 3: $query = $query->orderBy("tbmessages.created_at desc")->join('INNER JOIN', 'concerns', 'tbmessages.userid = concerns.concernid and concerns.myid=:id', [':id' => $user['id']])->join('LEFT JOIN', 'tblikes', 'tblikes.tbmessageid =tbmessages.id and tblikes.userid=:id', [':id' => $user->id]); break; case 4: $query = $query->orderBy("tbmessages.created_at desc")->where(['tbmessages.userid' => $user->id])->join('LEFT JOIN', 'concerns', 'tbmessages.userid = concerns.concernid and concerns.myid=:id', [':id' => $user['id']])->join('LEFT JOIN', 'tblikes', 'tblikes.tbmessageid =tbmessages.id and tblikes.userid=:id', [':id' => $user->id]); break; case 5: $query = $query->orderBy("tbmessages.created_at desc")->join('LEFT JOIN', 'concerns', 'tbmessages.userid = concerns.concernid and concerns.myid=:id', [':id' => $user['id']])->join('INNER JOIN', 'tblikes', 'tblikes.tbmessageid =tbmessages.id and tblikes.userid=:id', [':id' => $user->id]); break; } // $dataProvider = new \yii\data\Pagination ( [ // 'totalCount' => $query->count (), // 'pageSize' => '20' // ] ); $dataProvider = new ActiveDataProvider(['query' => $query]); $tbmessages = $dataProvider->getModels(); //$tbmessages = $query->orderBy ( "tbmessages.created_at desc" )->offset ( $dataProvider->offset )->limit ( $dataProvider->limit )->all (); //$models = $data->orderBy ( "msg.created_at desc" )->limit ( $pages->limit )->all (); //$models = $data->orderBy ( "msg.created_at desc" )->all (); $result = array(); $result['item'] = array(); //$tbreplys = (new \yii\db\Query ())->select('tbreplys.*,users.phone,users.nickname,users.thumb')->orderBy ( "tbreplys.created_at desc" )->join ( 'INNER JOIN', 'users', ' tbmessages.userid =users.id ')->where('tbreplys.tbmessageid in '); foreach ($tbmessages as $i => $tbmessage) { $info = $tbmessage; $info['replys'] = (new \yii\db\Query())->select(['tbreplys.*', 'user1.nickname as fromnickname', 'user1.phone as fromphone', 'user1.thumb as fromthumb', 'user2.nickname as tonickname', 'user2.phone as tophone', 'user2.thumb as tothumb'])->from('tbreplys')->join('INNER JOIN', 'users user1', 'user1.id = tbreplys.fromid and tbreplys.tbmessageid = :id', [':id' => $tbmessage['id']])->join('Left JOIN', 'users user2', 'user2.id = tbreplys.toid')->orderBy("tbreplys.created_at")->limit(20)->all(); $info['likes'] = (new \yii\db\Query())->select('u.phone,u.nickname,u.thumb')->from('tblikes')->join('INNER JOIN', 'users u', 'u.id=tblikes.userid and tblikes.tbmessageid=:id', [':id' => $tbmessage['id']])->orderby('tblikes.created_at desc')->limit(10)->all(); //$$dataProvider $tbmessages[$i] = $info; $result['item'][] = $info; } $dataProvider->setModels($tbmessages); // $result['_meta'] = array( // 'totalCount'=>$dataProvider->totalCount, // 'pageCount'=>$dataProvider->pageCount, // 'currentPage'=>$dataProvider->page+1, // 'perPage'=>$dataProvider->pageSize, // ); return $dataProvider; // return $model; }
public function actionIndex($id) { $model = new app\modelsActiveRecords\DinamicModel(); $model->setTableName('content'); Url::remember(Url::toRoute(['/article/list/?id=' . $id]), 'safe_url'); $item = $this->GetModel()->GetItem($id); $dataProvider = new ActiveDataProvider(["query" => $model->find()->where(["parent_id" => $id, "isdirectory" => 0]), "pagination" => ["pageSize" => 10]]); $items = $dataProvider->getModels(); $this->headerPage = "Список элементов - {$item["name"]} (" . count($items) . ")"; return $this->render('index', ["data" => $dataProvider]); }
public function query(UserDto $userDto, array $pageParams = [], array $sortParams = []) { $query = User::find(); $query->andFilterWhere(['status' => $userDto->status]); $query->andFilterWhere(['like', 'username', $userDto->username]); $query->andFilterWhere(['like', 'email', $userDto->email]); $pagination = new Pagination(array_merge($pageParams, ['totalCount' => $query->count()])); $sort = new Sort(['defaultOrder' => $sortParams]); $provider = new ActiveDataProvider(['query' => $query, 'pagination' => $pagination, 'sort' => $sort]); return ['models' => ArrayHelper::toArray($provider->getModels(), ['common\\models\\User' => $userDto->activeAttributes()]), 'pagination' => $pagination]; }
/** * * @return Url[] */ protected function getFromDataProvider() { $urlClassName = $this->urlClass; $models = $this->dataProvider->getModels(); $outModels = []; $hasRemap = $this->remap !== null; foreach ($models as $model) { if ($hasRemap) { $remapResult = call_user_func($this->remap, $model); if (is_array($remapResult)) { $outModels[] = call_user_func([$urlClassName, 'create'], $remapResult); } else { $outModels[] = $remapResult; } } else { $outModels[] = $model; } } return $outModels; }
public function actionIndex($id) { Url::remember(yii::$app->request->url, 'safe_url'); $model = new app\modelsActiveRecords\DinamicModel(); $model->setTableName('content'); $item = $this->GetModel()->GetItem($id); $dataProvider = new ActiveDataProvider(["query" => $model->find()->where(["parent_id" => $id, "isdirectory" => 0]), "pagination" => ["pageSize" => 10]]); $items = $dataProvider->getModels(); $countItems = count($items); $this->headerPage = "Список элементов - {$item["name"]}({$countItems})"; return $this->render('index', ["data" => $dataProvider]); }
/** * getFromDataProvider * @return []Url */ private function getFromDataProvider() { $remap = $this->remap; $models = $this->dataProvider->getModels(); $oModels = []; foreach ($models as $model) { if ($this->isClosure) { //function($model) //return Url $oModels[] = call_user_func($remap, $model); } else { $oModels[] = $this->remapModel($model, $this->remap); } } return $oModels; }