Вставить новую запись в таблицу без первичного ключа (CakePHP) - PullRequest
0 голосов
/ 15 мая 2019

Мне нужно интегрировать 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?

1 Ответ

1 голос
/ 15 мая 2019

Вам придется «вручную» создавать и запускать операторы 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();

См. Также

...