コード例 #1
0
ファイル: ListQuery.php プロジェクト: filamentv/yii2-app
 /**
  * 
  * @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()]);
     }
 }
コード例 #2
0
 /**
  * @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);
     }]);
 }
コード例 #3
0
ファイル: Import.php プロジェクト: nanodesu88/easyii
 /**
  * @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;
     });
 }
コード例 #4
0
ファイル: Category.php プロジェクト: aekkapun/yii2-podium
 /**
  * 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();
 }
コード例 #5
0
 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]);
 }
コード例 #6
0
ファイル: Exporter.php プロジェクト: arogachev/yii2-excel
 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]]);
     }
 }
コード例 #7
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;
 }
コード例 #8
0
 /**
  * @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]);
 }
コード例 #9
0
 /**
  * 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;
 }
コード例 #10
0
 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]);
 }
コード例 #11
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('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;
 }
コード例 #12
0
ファイル: ReportController.php プロジェクト: ncuong/lifeguard
 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]);
 }
コード例 #13
0
ファイル: Export.php プロジェクト: nanodesu88/easyii
 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;
             }
         }
     }
 }
コード例 #14
0
 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()];
 }
コード例 #15
0
 /**
  * @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]);
 }
コード例 #16
0
ファイル: MessageController.php プロジェクト: awebc/web_xbf
 /**
  * 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]);
 }
コード例 #17
0
ファイル: BrandServiceImpl.php プロジェクト: xiaomige/giishop
 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];
 }
コード例 #18
0
 /**
  * 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()]);
 }
コード例 #19
0
ファイル: LimitController.php プロジェクト: 171906502/wetM2.0
 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]);
 }
コード例 #20
0
 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;
 }
コード例 #21
0
ファイル: AreaPositionController.php プロジェクト: Olwn/pm25
 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;
 }
コード例 #22
0
ファイル: UserController.php プロジェクト: awebc/web_xbf
 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]);
 }
コード例 #23
0
 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]);
 }
コード例 #24
0
 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]);
 }
コード例 #25
0
 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;
 }
コード例 #26
0
 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]);
 }
コード例 #27
0
ファイル: UserServiceImpl.php プロジェクト: xiaomige/giishop
 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];
 }
コード例 #28
0
 /**
  *
  * @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;
 }
コード例 #29
0
 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]);
 }
コード例 #30
-1
 /**
  * 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;
 }