Имеет ли Codeigniter 2 более понятный способ сделать то, что показано в коде ниже?
Как видите, я пытаюсь вставить данные через POST в 3 отдельные таблицы, связанные друг с другом.
Как только я вставлю в table1
, я хочу взять его last insert id
и ввести его в качестве значения для table2_id
и table3_id
(внешний ключ).
Я гуглил это и это, и люди упоминали о транзакциях в БД, но мне было интересно, есть ли способ без транзакций.
Просто любопытно, будучи CodeIgniter новичком.
Вот код:
public function create()
{
$this->load->model('table1');
$this->load->model('table2');
$this->load->model('table3');
//validation goes here
$id1 = $this->table1->insert($this->input->post('table1'));
$data2 = array_merge($this->input->post('table2'), array('table1_id' => $id1));
$id2 = $this->table2->insert($data2);
$data3 = array_merge($this->input->post('table3'), array('table1_id' => $id1));
$id3 = $this->table3->insert($data3);
}