VladOsadchyi
@VladOsadchyi
Студент

Как добавить условия по умолчанию с учетом alias?

Мне нужно добавлять определенное условие ко всем запросам, сейчас реализовано так:
class ExtendedActiveQuery extends ActiveQuery
{
    public function init()
    {
        parent::init(); // TODO: Change the autogenerated stub
        $domainService = new DomainService();
        $currentCompanyId = $domainService->getCompanyId();
        if ($currentCompanyId) {
            $this->andOnCondition([$this->getPrimaryTableName() . '.company_id' => $currentCompanyId]);
        }
    }
}

Но проблема в том, что мне понадобилось использовать алиасы связей, вместо $this->getPrimaryTableName().
public function getTariffPlan()
    {
        return $this->hasOne(Management::class, ['id' => 'tariff_plan_id'])
            ->alias('tariffPlan');
    }

PhoneLines::find()->joinWith('tariffPlan');

Метод $this->getTableNameAndAlias() в init() возвращает имя таблицы для алиаса.
Я знаю про скоупы, но как-то не охота по всему приложению делать, что-то типа `Model::find()->someScope()`, хотелось бы что бы условие добавлялось автоматически ко всем запросам класса ExtendedActiveQuery
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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