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

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
iamguruman
Сообщения: 214
Зарегистрирован: 2018.05.10, 08:26

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

Сообщение 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']],
                ]);
        }
        
Ответить