Доброго вечера всем.
Ищу пользователя по его уникальному токену. В обычном запросе все выглядит так:
SELECT login FROM `users` WHERE MD5(CONCAT(`users`.`id`, Yii::app()->params->salt )) = $token
Это работает, но когда я пытаюсь воспользоваться ActiveRecord и CDbCriteria, то получаю ошибку. Делаю по типу:
$criteria=new CDbCriteria;
$criteria->select='login';
$criteria->condition = 'hash=:hash';
$criteria->params = [
':hash' => "MD5(CONCAT(`users`.`id`, '" . Yii::app()->params->salt . "'))"
];
$arUser = (new User)->find($criteria);
Но это не работает, т.к. передача в параметры строки с функциями таким образом ожидаемо выдает ошибку о некорректном sql-запросе. Нашел варианты с использованием CDbExpression или findBySql, но это убивает всю красоту работы через AR. Как быть?
Заранее спасибо за советы.