私はテーブルYをテーブルYに接続して、 を含んでいます。これをhasOneと関数を使用してテーブルZと内部結合(マッチング)したいとします。 CakePHPは自動的にCakephp 3.x hasOneはデフォルトの外部キーを挿入します
public function initialize(array $config)
{
$this->belongsTo('Y', [
'bindingKey' => 'initialen',
'foreignKey' => 'initialen'
]);
$this->hasOne('Z');
}
さらにhasOneの通過、存在しないデフォルトの行に接続
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;
}
私は取得していますエラーZ.search_idが存在しない場合は
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Z.search_id' in 'on clause'
正しい解決策を見つけましたが、この意志よりも、クエリにも追加しました。私は欲しくない。 searches' INNERが '' archief_Z' Z' ON( 'Z'.'client_ID' = 81 と' searches'.'IDを登録しよう '' archief'のは、私が から 'TEAM_ID' としてのForeignKeyを指定しましょう'=(' Z'.'team_ID') ) LEFT JOIN 'archief_Y''Y'''''''''''は'( '''''''') – Joost