在使用这样的代码时:
$Model->find('all', array(
'conditions' => array(
'field' => '1111'
)
));
where field is varchar mysql field cake 生成如下查询:
SELECT * FROM Models WHERE field = 1111;
而不是预期
SELECT * FROM Models WHERE field = '1111';
这也使得 mysql 将整个数据库转换为 int 而不是使用字符串索引。我正在尝试优化由其他人编写的已经工作的系统,并且快速 grep 显示了我需要“修复”的数千个查找。因此,唯一可接受的解决方案应该是模型层或 mysql 层。
tl; dr:如何让 Cake 将整数字符串从条件传递给 mysql 作为字符串而不是数字?