cakephp3.xhasone插入默认外键
我有一个表X通过包含连接到表Y 当我想使用hasOne和一个函数将其与表Z进行内部连接(匹配)时。 CakePHP通过hasOne自动连接到不存在的默认行cakephp3.xhasone插入默认外键,php,mysql,cakephp,cakephp-3.0,Php,Mysql,Cakephp,Cakephp 3.0,我有一个表X通过包含连接到表Y 当我想使用hasOne和一个函数将其与表Z进行内部连接(匹配)时。 CakePHP通过hasOne自动连接到不存在的默认行 public function initialize(array $config) { $this->belongsTo('Y', [ 'bindingKey' => 'initialen', 'foreignKey' => 'initialen' ]); $
public function initialize(array $config)
{
$this->belongsTo('Y', [
'bindingKey' => 'initialen',
'foreignKey' => 'initialen'
]);
$this->hasOne('Z');
}
进一步
public function search($c)
{
$query = $this->find('all')->contain('Y')->matching('Z', function ($q) use ($c) {
return $q->where(['Z.client_ID' => $c]);
});
return $query;
}
我遇到错误
错误:SQLSTATE[42S22]:未找到列:1054未知列
“on子句”中的“Z.search_id”
如果Z.search_id不存在,则必须指定其他确实存在的外键:
$this->hasOne('Z',[
'foreignKey' => 'some_key'
]);
更多信息:如果Z.search\u id不存在,则必须指定其他确实存在的外键:
$this->hasOne('Z',[
'foreignKey' => 'some_key'
]);
更多信息:好的,我自己找到了解决方案
$this->hasOne('Z',[
'foreignKey' => false
]);
好的,我自己找到了解决办法
$this->hasOne('Z',[
'foreignKey' => false
]);
正确,但这也将添加到查询中。我不想要的。假设我在(
Z
client\u ID
=81和searches
ID
团队ID
)上指定foreignKey作为archief
搜索ID
=(Z
团队ID
)在Y
initialen
=(搜索initialen
)上的左连接存档Y
Y
)正确,但这也将添加到查询中。我不想要的。假设我在(Z
client\u ID
=81和searches
ID
团队ID
)上指定foreignKey作为archief
搜索ID
=(Z
团队ID
)左连接archief\u Y
Y
在Y
initialen
=(搜索initialen
)