@tkirsan4ik

Yii2. Как в ActiveQuery модели переопределить метод all()?

Всем здравствуйте.
Столкнулся с такой задачей:
в таблице есть поле active, необходимо выбрать только те строки, в которых поле active=1 абсолютно для всех вызовов данной модели.
Решение которое я нашел меня не совсем устраивает(так как придется менять это во всех вызовах, а их накопилось много, да и делать это нужно не для одной модели):
public function allActive(){
$this->andWhere('table_name.active=1')->all();
}

А все попытки записать эту конструкцию в all() приводили к ошибкам
Возможно ли переопределить метод all() и вставить туда условие active=1?
  • Вопрос задан
  • 386 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
А все попытки записать эту конструкцию в all() приводили к ошибкам

не стоит так делать это bad practice. по сути дела Вам нужно реализовать default scope. Для этого есть множество подходов, часть из них можно почерпнуть например из этой статьи на хабре
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы