gpt4 book ai didi

php - CakePHP关联关系表

转载 作者:行者123 更新时间:2023-11-29 10:44:39 24 4
gpt4 key购买 nike

我需要建立诸如“Group hasMany users”和“User BelongToMany groups”之类的关联。

但我无法得到正确的结果,它总是使用错误的表groups_relations

我的模型:

class GroupsTable extends Table
{
public function initialize(array $config)
{
$this->setTable('groups');
$this->setDisplayField('title');
$this->setPrimaryKey('id');

$this->hasMany('Users', [
'joinTable' => 'groups_relations',
'foreignKey' => 'user_id',
]);
}
}


class UsersTable extends Table
{
public function initialize(array $config)
{
$this->table('user_users');
$this->belongsToMany('Groups', [
'joinTable' => 'groups_relations',
'foreignKey' => 'group_id',
]);

}
}

class GroupsRelationsTable extends Table
{
public function initialize(array $config)
{
parent::initialize($config);

$this->setTable('groups_relations');
$this->setDisplayField('group_id');
$this->setPrimaryKey('id');

$this->belongsTo('Groups', [
'foreignKey' => 'group_id',
'joinType' => 'INNER'
]);

$this->belongsToMany('Users', [
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);

}
}

还有我的表groups_relations:

id |组 ID | user_id

我运行查询:

 $groupsWithUsers = $this->Groups->find('all', array(
'contain' => array('Users')
));

我不明白如何告诉 cake 使用我的中间表并将结果附加到数组。

最佳答案

joinTable 不是 hasMany 关联的有效配置键。我认为您希望拥有群组 belongsToMany 用户。另一个线索是 hasManybelongsTo 的“对立面”,而 belongsToMany 则是它自己的对立面。 (也就是说,如果 A hasMany B,则 B belongsTo A,但如果 A belongsToMany B,则 B belongsToMany A.) 请注意,您还需要将 GroupsRelations 与 Users 的关联更改为 belongsTo

这段代码是为您编写的吗?因为它应该更了解。当我遇到粘性关联问题时,有时我会让 Cake 为我烘焙模型代码,然后看看结果与我编写的结果有何不同。

关于php - CakePHP关联关系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44850507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com