@cat_crash

Yii2: Как через поведение добавлять фильтр в AR?

Хочу сделать поведение модели, которое бы само добавляло фильтр ко всем SQL запросом исходя из авторизованного пользователя (выбирать только те записи в которых owner_id = текущему ID пользователя)
Как я понимаю до текущей AR можно доступиться через событие: ActiveRecord::EVENT_INIT но ума не приложу как добавить условие типа ->andWhere(['user_id'=>Yii::$app->user->id])
Вариант
public function events()
    {
        return [
            ActiveRecord::EVENT_INIT => 'afterInit',
        ];
    }
 public function afterInit($event)
    {
        $this->owner->andWhere(["owner_id" => Yii::$app->user->identity->{$this->attribute}]);

    }

выдает ошибку Exception yii\base\UnknownMethodException
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Видимо Ваша модель унаследована от activeRecords или вообще от Model, а метод andWhere это метод класса activeQuery, так что все верно Вам выдает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы