我正在将一个 CakePHP 1.3 应用程序迁移到 2.4.1,虽然这个过程很痛苦,但我现在遇到了一些非常奇怪的事情。
在进行查找以在 Testimonials 表中检索所有活动的行时(ENUM 列称为 '0'、'1' 的活动),1 处于活动状态,0 处于非活动状态,Cake 仅检索不活动的行, 0。
$testimonials = $this->Testimonial->find('all', array('conditions' => array('Testimonial.activo' => '1')));
Rows:
ID name activo
1 James 1
2 Holly 0
3 David 1
正在检索 Holly,而不是检索 David 和 James。如果使它们全部处于非活动状态(0),它将全部获取,但如果我使它们全部处于活动状态(1),则它根本不检索。当我给出的条件是 1 时,就好像它决定了 0 是我正在寻找的而不是 1。
关于可能发生的事情的任何线索?
编辑:包括生成的 SQL
SELECT `Testimonial`.`id`, `Testimonial`.`spa`, `Testimonial`.`eng`, `Testimonial`.`fre`, `Testimonial`.`ita`, `Testimonial`.`por`, `Testimonial`.`nombre`, `Testimonial`.`activo`, `Testimonial`.`created` FROM `database_dev`.`testimonials` AS `Testimonial` WHERE `Testimonial`.`activo` = 1
顺便说一句,到目前为止,我发现的所有发现都发生了这种情况,在其他表中,有一个带有 ENUM 的活动字段,我要求值为 1 或更高。
为查找尝试了几次迭代,例如 array('1')、'... >=' => '1'、'...' => 1 等。