我正在建立一个项目,我想在其中利用CakePHP的翻译行为。
一切似乎都很好,直到我到达了我想要它翻译的10个字段。翻译行为为它试图检索的每个字段创建了一个内部连接--我认为这是导致此错误的原因(仅在10+中发生):
SQLSTATE42000:语法错误或访问冲突: 1104选择将检查比MAX_JOIN_SIZE行更多的内容;如果选择正常,请检查您的位置,并使用SET SQL_BIG_SELECTS=1或SET MAX_JOIN_SIZE=#
两个问题:
1)我尝试通过运行两个列出的SQL命令来修复它,但仍然没有成功--我如何才能让它工作呢?
2)如果要为每个字段创建一个内部连接,那么有10-20+的翻译字段是否是理想的/ok/可接受的?我应该重新考虑使用这种行为,或者自己创造一些东西吗?
发布于 2013-09-12 13:09:10
发布于 2013-11-18 23:35:49
1:它是mysql安全选项,您可以重写它。在应用程序控制器中使用前筛选器中的代码以避免此错误。
function beforeFilter() {
$this->{$this->modelClass}->query('SET SQL_BIG_SELECTS=1');
...
}他说:把桌子连在一起是可以的,但也有一些建议:
https://stackoverflow.com/questions/18751254
复制相似问题