当前位置:  开发笔记 > 编程语言 > 正文

CakePHP 3 QueryBuilder:少数值的条件不会生成'IN'语句

如何解决《CakePHP3QueryBuilder:少数值的条件不会生成'IN'语句》经验,为你挑选了0个好方法。

在CakePHP 2中,当你写这样的东西时:

$Model->find('all', ['conditions' => ['field' => 1]]);

您将获得如下所示的查询:

SELECT * FROM model WHERE model.field = 1;

或者当你写这样的东西时:

$Model->find('all', ['conditions' => ['field' => [1,2,3,5]]]);

你会得到这样的查询:

SELECT * FROM model WHERE model.field IN (1,2,3,5);

我的意思是,'IN'语句是根据参数的类型自动生成的.

另一方面,当你写的时,CakePHP 3

$Table->find()->where(['field' => [1,2,3]])->all();

你会收到一个错误,例如

无法将值转换为整数

因为它生成如下语句:

SELECT * FROM table WHERE table.field = Array();

这是一个错误还是一个功能?

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有