Пример #1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Tags::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'type' => $this->type]);
     $query->andFilterWhere(['like', 'name', $this->name]);
     return $dataProvider;
 }
Пример #2
0
 /**
  * @param $type
  * @param $asArray
  * @param null $limit
  * @return array | $this
  */
 public function getByType($type, $asArray, $limit = null)
 {
     $ans = Tags::find()->where(['=', 'type', $type])->indexBy('id');
     if ($limit) {
         $ans->limit($limit);
     }
     if ($asArray) {
         $ans = $ans->asArray()->all();
         $out = [];
         if (!empty($ans)) {
             foreach ($ans as $ind => $val) {
                 $out[$ind] = $val['name'];
             }
         }
         return $out;
     }
     $ans->all();
     return $ans;
 }
Пример #3
0
 /**
  * @param $article_id
  * @param $tag_type
  * @param $asArray
  * @param null $limit
  * @return $this|string
  */
 public function getLinkedTagsByType($article_id, $tag_type, $asArray, $limit = null)
 {
     $out = "";
     $ans = Tags::find()->from(['contentmanager_content'])->join('INNER JOIN', 'contentmanager_tags_link', '`contentmanager_tags_link`.`link_id` = `contentmanager_content`.`id`')->join('INNER JOIN', 'contentmanager_tags', '`contentmanager_tags`.`id` = `contentmanager_tags_link`.`tag_id`')->select(['`contentmanager_tags`.*'])->indexBy('id')->where(['=', '`contentmanager_content`.`id`', $article_id])->andWhere(['=', '`contentmanager_tags`.`type`', $tag_type]);
     if ((int) $limit) {
         $ans->limit($limit);
     }
     if ($asArray) {
         $ans->asArray();
     }
     $ans = $ans->all();
     if ($asArray) {
         foreach ($ans as $ind => $val) {
             $out[$ind] = $val['name'];
         }
         return $out;
     }
     return $ans;
 }