Как отсортировать колонку Yii2, если она встречается в 3-х разных таблицах?

Есть колонка serial_number, которая находится в таблицах: network_hardware, office_equipment, server. Основная таблица не хранит эту колонку, а подтягивает по отношению.

Model

@property NetworkHardware|OfficeEquipment|Server $serialNumber Серийный номер

/**
 * @return \yii\db\ActiveQuery
 */
public function getSerialNumber() {
    if ($this->equipment_type === GeneralInformationEntity::EQUIPMENT_TYPE_NETWORK_HARDWARE) {
        return $this->hasOne(NetworkHardware::class, ['general_information_id' => 'id']);
    }

    if ($this->equipment_type === GeneralInformationEntity::EQUIPMENT_TYPE_OFFICE_EQUIPMENT) {
        return $this->hasOne(OfficeEquipment::class, ['general_information_id' => 'id']);
    }

    if ($this->equipment_type === GeneralInformationEntity::EQUIPMENT_TYPE_SERVER) {
        return $this->hasOne(Server::class, ['general_information_id' => 'id']);
    }
}

View

[
    'attribute' => 'serialNumber',
    'value' => function($model) {
        return $model->serialNumber->serial_number ?? '';
    }
],

Схема в БД выглядит так: введите сюда описание изображения

Как при таком раскладе сделать сортировку по столбцу serialNumber?


Ответы (0 шт):