Мне нужно добавлять определенное условие ко всем запросам, сейчас реализовано так:
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