/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = SelectedBlog::find();
     $selectedBlogTable = SelectedBlog::tableName();
     $blogTable = Post::tableName();
     $query->joinWith(['post' => function ($query) use($blogTable) {
         $query->from(['post' => $blogTable]);
     }]);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
     // enable sorting for the related columns
     $addSortAttributes = ["post.title"];
     foreach ($addSortAttributes as $addSortAttribute) {
         $dataProvider->sort->attributes[$addSortAttribute] = ['asc' => [$addSortAttribute => SORT_ASC], 'desc' => [$addSortAttribute => SORT_DESC]];
     }
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'post_id' => $this->post_id]);
     $query->andFilterWhere(['like', 'post.title', $this->getAttribute('post.title')]);
     return $dataProvider;
 }
Exemple #2
0
 /**
  * Check type model of post if it blog
  * 
  * @return boolean 
  */
 public function isSelected()
 {
     $selectedBlogs = SelectedBlog::find()->where(['post_id' => $this->id])->one();
     return isset($selectedBlogs);
 }