Codeigniter 4 сохранение вставленного идентификатора из первой таблицы во вторую таблицу

#codeigniter-4

#codeigniter-4

Вопрос:

Я пытаюсь сохранить свои данные в 2 таблицы. У меня есть 2 таблицы, команды и участники. После того, как руководитель группы добавил команду (которая будет сохранена в таблице teams), его идентификатор пользователя, а также идентификатор команды (который генерируется из таблицы teams) будут сохранены в таблице members.

Моя цель состоит в том, чтобы после того, как пользователь создаст команду, его идентификатор пользователя будет автоматически включен в таблицу участников.

Проблема, с которой я сталкиваюсь, заключается в том, что идентификатор команды сохраняется как 0. Прямо сейчас я могу думать о выполнении get return team id только после того, как я выполню запрос таблицы insert teams, а затем выполню запрос таблицы insert members с возвращаемым результатом. Есть ли лучший способ сделать это? Если да, то как мне это сделать? Если нет, то как мне это сделать?

Ниже приведен мой текущий код :

 Table teams
team_id | game_id | leader_user_id
5       | 1       | 1
6       | 1       | 1
7       | 2       | 1
8       | 2       | 1   

Table members
team_id | user_id
0       | 1         
  

Контроллер

 $model = new TeamsModel();
                
$newData = [
    'game_id' => $this->request->getVar('game_id'),
    'leader_user_id' => session()->get('user_id')
];

$members = new MembersModel();

$includeLeader = [
    'user_id' => session()->get('user_id'),
    'team_id' => $team_id
];

$model->save($newData);

$members->save($includeLeader);
  

Заранее спасибо, ребята!

Ответ №1:

Удалось выяснить, как это решить с помощью insertID(). Для дальнейшего использования на всякий случай.

 $model = new TeamsModel();
                
$newData = [
    'game_id' => $this->request->getVar('game_id'),
    'leader_user_id' => session()->get('user_id')
];

$model->save($newData);

$team_id = $model->insertID();

$members = new MembersModel();

$includeLeader = [
    'user_id' => session()->get('user_id'),
    'team_id' => $team_id
];

$members->save($includeLeader);