cakephp抛出错误,同时从自引用表中删除

问题描述:

我有一个非唯一键引用主键的表。当我通过在where子句中使用相同的非唯一列来删除记录时,cakephp将使用导致SQL错误的相同别名加入同一个表。cakephp抛出错误,同时从自引用表中删除

$this->MyModel->deleteAll(array('non_uniq_id'=>array_keys($data))); 

我获得MySQL错误如下:

SQL Error: 1066: Not unique table/alias:... 

我试过长时间用CakePHP的ORM解决它(我可以用我自己的SQL查询,避免它)。我也试过this solution,但它没有帮助。

任何帮助表示赞赏。

由于您可能经常遇到此问题,因此应确保您的关联和模型都具有唯一的名称。

如果做不到这一点,你可以暂时解除绑定令人不安的关联,这应该引起它不被加入:

$this->MyModel->unbindModel(array('hasMany' => array('MyModel'))); 
+0

感谢您的回复,但TI没有工作。我只是从模型中删除了这些关联,现在它起作用了。 – pMan 2011-06-06 13:47:01