/** * Устанавливает ограничение на критерий запроса * @param \common\db\ActiveQuery $query запрос * @return mixed */ public function applyConstraint($query) { $userId = Yii::$app->user->id; $cls = $query->modelClass; $table = $cls::tableName(); $query->andWhere(["{{%{$table}}}.{{%author_id}}" => $userId]); }
/** * Поиск * @param ActiveQuery $query */ protected function search(ActiveQuery $query) { $table = $this->model->tableName(); $relatedClass = $this->model->{"get" . ucfirst($this->relation)}()->modelClass; $tableRelated = $relatedClass::tableName(); $query->joinWith($this->relation, $this->eagerLoading)->andFilterWhere(["{{%{$tableRelated}}}.{{%id}}" => $this->model->{$this->attr}])->groupBy("{$table}.id"); }
/** * @inheritdoc */ protected function search(ActiveQuery $query) { if ($this->model->hasAttribute($this->attr)) { $table = $this->model->tableName(); $attr = $this->attr; $query->andFilterWhere(["~*", "{{%{$table}}}.{{%{$attr}}}", preg_quote($this->model->{$this->attr})]); } }
/** * @inheritdoc * @return \common\db\ActiveQuery */ public static function find() { return Yii::createObject(\common\db\ActiveQuery::className(), [get_called_class()]); }
/** * Устанавливает ограничение на критерий запроса * @param \common\db\ActiveQuery $query запрос * @return mixed */ public function applyConstraint($query) { $cls = $query->modelClass; $table = $cls::tableName(); $query->andWhere(["{{%{$table}}}.{{%role}}" => $this->getPermittedRoles()]); }