在没有主键的表中插入新记录(CakePHP)

在没有主键的表中插入新记录(CakePHP),cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我需要将PhpBB与CakePHP集成。在PhpBB中有一个表PhpBB_user_group,没有主键: group_id | user_id | group_leader | user_pending 当我创建新用户时,我需要将新记录添加到此表中,但CakePHP给了我以下错误: Cannot insert row in "phpbb_user_group" table, it has no primary key. 我可以将主键为的列添加到表中,但我不希望这样。更新PhpBB

我需要将PhpBB与CakePHP集成。在PhpBB中有一个表PhpBB_user_group,没有主键:

group_id | user_id | group_leader | user_pending    
当我创建新用户时,我需要将新记录添加到此表中,但CakePHP给了我以下错误:

Cannot insert row in "phpbb_user_group" table, it has no primary key. 
我可以将主键为的列添加到表中,但我不希望这样。更新PhpBB总是件麻烦事,我预见到将来会出现问题,所以我不想修改数据库结构

在CakePHP中是否可以在没有主键的情况下向表中插入新记录?

您必须“手动”创建并运行
insert
语句,例如,使用查询生成器,您将无法使用ORM的保存功能,因为它依赖于主键的存在

$statement = $Table
    ->query()
    ->insert([
        'group_id',
        'user_id',
        'group_leader',
        'user_pending'
    ])
    ->values([
        'group_id' => $groupId,
        'user_id' => $userId,
        'group_leader' => $groupLeader,
        'user_pending' => $userPending
    ])
    ->execute();

$success = $statement->rowCount() === 1;
$statement->closeCursor();
另见