Mysql CakePHP,injects";“左连接”;(提及关联模型中的字段)添加到我的更新尝试中
这让我发疯,我正试图做一些事情,比如:Mysql CakePHP,injects";“左连接”;(提及关联模型中的字段)添加到我的更新尝试中,mysql,cakephp,mysql-error-1054,Mysql,Cakephp,Mysql Error 1054,这让我发疯,我正试图做一些事情,比如: $this->data = $this->Prox->read('proxy',$currentgetdata); $this->data['Prox']['checked'] = 2; $this->Prox->save(); 其中我有一个模型协会: class Prox extends AppModel { var $name
$this->data = $this->Prox->read('proxy',$currentgetdata);
$this->data['Prox']['checked'] = 2;
$this->Prox->save();
其中我有一个模型协会:
class Prox extends AppModel {
var $name = 'Prox';
var $primaryKey = 'id';
######## Define Model Associations #########
var $belongsTo = array('Proxylink' => array('className' => 'Proxylink'));
}
但我得到一个错误:
SELECT `Prox`.`proxy` FROM `proxes` AS `Prox` LEFT JOIN `proxylinks` AS `Proxylink` ON (`Prox`.`proxylink_id` = `Proxylink`.`id`) WHERE `Prox`.`id` = '58.22.101.239:808' LIMIT 1
1054: Unknown column 'Prox.proxylink_id' in 'on clause'
我不明白为什么它会把这个放到查询“LEFT JOINproxylinks
作为Proxylink
上(Prox
Proxylink\u id
=Proxylink
id
)中,我一直找不到任何关于它为什么这样做的文档,似乎它必须尝试在每个查询中包含我的关联模型和当前模型中的字段的不存在的混合体,我觉得这非常奇怪。。如果您有关联,您的“prox”表必须有“proxylink\u id”字段,请提供有关如何使保存/更新查询正常工作的建议
如果您不想加入关联模型,则必须将“”选项设置为
-1
您是否尝试调用$this->Prox->save($this->data)
?我刚刚尝试过,但仍然得到相同的错误,我也尝试过使用updateAll,但得到相同的错误谢谢,这似乎是解决方案(将recursive设置为-1),然而,烹饪书没有给出如何实现这一点的任何示例,我假设我只是以某种方式将其放入一个数组中,如果有人有一个示例,我将非常感谢。。感谢$this->Prox->recursive=-1查询前在控制器中输入代码>。另一种设置递归的方法,如图所示-。但我想让您注意一个事实,您在缺少外键列时出错。这可能是因为您设置了错误的模型关联(belongsTo)。