Задать вопрос
@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
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Видимо Ваша модель унаследована от activeRecords или вообще от Model, а метод andWhere это метод класса activeQuery, так что все верно Вам выдает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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