我使用CakePHP 3.4記錄包含模型CakePHP的3
我獲取的用戶信息,如
$user = $this->Users->get($id, [
'contain' => [
'UserAddresses.States.Countries' => ['conditions' => [
'UserAddresses.deleted' => false]],
],
]);
這裏,UserAddresses
有user_id
柱和state_id
列和States
表有country_id
列。
如果在表中沒有關聯user_address,然後我給 record not found
錯誤 同時消除States.Countries
從contain
正常工作,即使記錄在UserAddresses
編輯2不存在:關係
UsersTable.php
$this->hasOne('UserAddresses', [
'foreignKey' => 'user_id'
]);
UserAddressesTable.php
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);
$this->belongsTo('States', [
'foreignKey' => 'state_id',
'joinType' => 'INNER'
]);
StatesTable.php
$this->belongsTo('Countries', [
'foreignKey' => 'country_id',
'joinType' => 'INNER'
]);
$this->hasMany('UserAddresses', [
'foreignKey' => 'state_id'
]);
CountriesTable.php
$this->hasMany('States', [
'foreignKey' => 'country_id'
]);
我也試過這個。但不起作用 –
更新你的問題,並告訴哪些模型之間的關係,取決於它,你應該使用matching()或innerJoinWith()。 –
更新的問題與關係 –