#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);