Страница 1 из 1

Получить имя колонки для запроса

Добавлено: 2022.07.19, 10:29
iamguruman

Код: Выделить всё

        if(!empty($params2['search'])){
            $query
                ->joinWith('nomenclature')
                ->andWhere(['or',
                    ['like', Nomenclature::tableName().'.name', $params2['search']],
                ]);
        }
        
в модели поиска (ModelSearch.php) я часто использую такие конструкции Nomenclature::tableName().'.name'

было бы очень удобно если в class ActiveRecord внести метод типа

Код: Выделить всё

public static function getColumnName($column_name){
  return self::tableName().".{$column_name}";
}
тогда бы можно было получать название колонки таблицы и подставлять его в запросе activerecord

и тогда контсрукция поиска получится вот такая:

Код: Выделить всё

        if(!empty($params2['search'])){
            $query
                ->joinWith('nomenclature')
                ->andWhere(['or',
                    ['like', Nomenclature::getColumnName('name'), $params2['search']],
                ]);
        }