При использовании кода, подобного следующему:
$Model->find('all', array(
'conditions' => array(
'field' => '1111'
)
));
, где поле - это поле varchar, mysql генерирует запрос, подобный следующему:
SELECT * FROM Models WHERE field = 1111;
вместо ожидаемого
SELECT * FROM Models WHERE field = '1111';
Это также заставляет mysql приводить всю БД к int вместо использования строкового индекса.Я пытаюсь оптимизировать уже работающую систему, написанную кем-то другим, и быстрый всплеск показывает тысячи находок, которые мне нужно «исправить».Поэтому единственно приемлемым решением должен быть либо уровень модели, либо уровень mysql.
tl; dr: Как заставить Cake передавать целочисленные строки из условий в mysql как строки, а не как числа?