У меня есть одна модель SupplierInquiry, у которой есть много SupplierInquiryProducts, и в таблице SupplierInquiryProducts у меня есть внешний ключ product_id, и product_id может быть из многих моделей.
Я применил отношения в SupplierInquiryProducts, как показано ниже
$this->belongsTo('ConsumablesMaster', [
'foreignKey' => 'product_id',
'className' => 'ConsumablesMaster'
])->setConditions(['SupplierInquiry.inquiry_type'=>'Consumable']);
$this->belongsTo('ProductsMaster', [
'foreignKey' => 'product_id',
'className' => 'ProductsMaster'
])->setConditions(['SupplierInquiry.inquiry_type'=>'Chemical Product']);
public function buildRules(RulesChecker $rules){
$rules->add($rules->existsIn(['supplier_inquiry_id'], 'SupplierInquiry'));
$rules->add($rules->existsIn(['product_id'], 'ConsumablesMaster'));
$rules->add($rules->existsIn(['product_id'], 'ProductsMaster'));
return $rules;
}
Здесь в одно и то же время оба ownTo не работают, а также для примененного условия выдает ошибку, что столбец не найден: 1054 Неизвестный столбец 'SupplierInquiry.inquiry_type' in 'в предложении'