如何在 cakephp 3 中加入多对多 table?
How to self join a many to many table in cakephp 3?
我尝试自行加入我的 table 用户以获得父子关联,但没有成功
这是我在用户模型中的关联:
$this->belongsToMany('Parents', [
'className' => 'Users',
'joinTable' => 'users_users',
'foreignKey' => 'id',
'targetForeignKey' => 'parent_id'
]);
$this->belongsToMany('Childs', [
'className' => 'Users',
'joinTable' => 'users_users',
'foreignKey' => 'id',
'targetForeignKey' => 'child_id'
]);
我没有在UsersUsers模型中做参数。
当我这样做时:
$test = $this->Users->find()->where(['id =' => 65])->contain(['Parents']);
我得到了子实体,但父实体 属性 是空的,所以我做错了什么,但我不知道是什么。
感谢您的帮助:)
我的外键不好,是这样的:
$this->belongsToMany('Parents', [
'className' => 'Users',
'joinTable' => 'users_users',
'foreignKey' => 'child_id',
'targetForeignKey' => 'parent_id'
]);
$this->belongsToMany('Childs', [
'className' => 'Users',
'joinTable' => 'users_users',
'foreignKey' => 'parent_id',
'targetForeignKey' => 'child_id'
]);
问题已解决
我尝试自行加入我的 table 用户以获得父子关联,但没有成功
这是我在用户模型中的关联:
$this->belongsToMany('Parents', [
'className' => 'Users',
'joinTable' => 'users_users',
'foreignKey' => 'id',
'targetForeignKey' => 'parent_id'
]);
$this->belongsToMany('Childs', [
'className' => 'Users',
'joinTable' => 'users_users',
'foreignKey' => 'id',
'targetForeignKey' => 'child_id'
]);
我没有在UsersUsers模型中做参数。
当我这样做时:
$test = $this->Users->find()->where(['id =' => 65])->contain(['Parents']);
我得到了子实体,但父实体 属性 是空的,所以我做错了什么,但我不知道是什么。
感谢您的帮助:)
我的外键不好,是这样的:
$this->belongsToMany('Parents', [
'className' => 'Users',
'joinTable' => 'users_users',
'foreignKey' => 'child_id',
'targetForeignKey' => 'parent_id'
]);
$this->belongsToMany('Childs', [
'className' => 'Users',
'joinTable' => 'users_users',
'foreignKey' => 'parent_id',
'targetForeignKey' => 'child_id'
]);
问题已解决