with('categoryName'); // add conditions that should always apply here $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; }*/ // grid filtering conditions $query->andFilterWhere([ 'category_id' => $this->category_id, 'parent_id' => $this->parent_id, 'category_name_id' => $this->category_name_id, 'product_unit_id' => $this->product_unit_id, ]); $query->andFilterWhere(['like', 'alias', $this->alias]); $query->orderBy(['path' => SORT_ASC, 'depth' => SORT_ASC]); return $dataProvider; } public static function findByAlias($alias) { /** @var CategoryQuery $query */ $query = Category::find() ->with('categoryName') ->andFilterWhere(['alias' => $alias]); if (($model = $query->one()) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } public static function findByRemoteID($id) { /** @var CategoryQuery $query */ $query = Category::find() ->with('categoryName') ->andFilterWhere(['@>', 'remote_id', ArtboxTreeHelper::setArrayField($id)]); if (($model = $query->one()) !== null) { return $model; } return null; } // public static function findByProductsKeywords($keywords = [], $category = null) { // // } }