Почему мой запрос не работает с использованием ActiveRecord? - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь получить Article модели, используя этот код:

$criteria = new CDbCriteria();
$criteria->addCondition("type = :type and name ILIKE :name";
$criteria->params = [
    ":type" => 1,
    ":name" => "art"
];
$articles = Articles::model()->findAll($criteria);

Но это не работает. Я получаю:

ошибка базы данных рядом с ILIKE.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вы должны использовать % подстановочный знак в искомом значении:

$criteria = new CDbCriteria();
$criteria->addCondition("type = :type and name ILIKE :name");
$criteria->params = [
    ":type" => 1,
    ":name" => '%art%',
];
$articles = Articles::model()->findAll($criteria);
0 голосов
/ 05 октября 2018

Я думаю, что вы используете неправильный метод CDbCriteria для вашего запроса.Попробуйте использовать addSearchCondition для ILIKE

$criteria->addSearchCondition("name", "art", true, "AND", "ILIKE");
...