我需要获取在我的控制器中使用的插入ID,问题是我的模型函数有几个数据数组,我需要第一个数组的插入ID。因此,如果我试图在我的控制器上获取插入ID,显然它抓住第二个插入ID而不是第一个。
我不确定这是否有意义,但这是一个例子:
public function add() {
$data = array(
'name' => $_POST['companyName']
,'type' => $_POST['companyType']
,'active' => '1');
$this->db->insert('company', $data);
$cid = $this->db->insert_id();
$data2 = array(
'cid' => $cid
,'name' => $_POST['locationName']
,'address' => $_POST['locationAddress']);
$this->db->insert('locations', $data2);
}
这工作正常......但是在运行之后,在我的控制器上重定向正在获取data2最后一次插入,这使我的重定向错误。
public function add() {
if (isset($_POST["add"]))
{
$this->Company_model->add();
$id = $this->db->insert_id();
redirect('company/view/'.$cid);
}
$data['states'] = $this->Company_model->
}
任何帮助都会很棒!
答案 0 :(得分:3)
你非常接近。您可以从模型方法返回$ cid,而不是在控制器中重复$id = $this->db->insert_id();
。
public function add() {
$data = array(
'name' => $_POST['companyName']
,'type' => $_POST['companyType']
,'active' => '1');
$this->db->insert('company', $data);
$cid = $this->db->insert_id();
$data2 = array(
'cid' => $cid
,'name' => $_POST['locationName']
,'address' => $_POST['locationAddress']);
$this->db->insert('locations', $data2);
// This returns your first inserts id
return $cid;
}
public function add() {
if (isset($_POST["add"]))
{
$id = $this->Company_model->add();
redirect('company/view/'.$id);
}
...