【发布时间】:2019-01-01 06:09:03
【问题描述】:
我想在 CodeIgniter 中创建一个 ID,例如 PTGS-1,其中 1 来自自动递增的列,PTGS 来自我创建的函数。
我创建了 2 列,1 列仅用于自动递增,1 列用于自定义 ID PTGS-1。并且每次我要插入数据,具有自定义 id 的列总是返回 PTGS-0,它不会得到 last insert id。
这是我在模型中自定义 id 的函数
public function custIdPetugas() {
$prefix = "PTGS" . "-";
$lastid = $this->db->insert_id();
$customid = $prefix.$lastid;
return $customid;
}
以及模型中的这个函数来处理用户输入
public function simpan() {
$custom_id = $this->custIdPetugas();
$post = $this->input->post();
$data = array(
'custom_id' => $custom_id,
'nama_petugas' => $post['nama'],
'username' => $post['uname'],
'password' => password_hash($post['pword'], PASSWORD_DEFAULT),
'tgl_lahir' => $post['tgllahir'],
'alamat' => $post['alamat'],
'no_telpon' => $post['notelpon']
);
$this->db->insert($this->tbl, $data);
}
和控制器
public function tambahPetugas() {
$petugas = $this->PetugasModel;
$validation = $this->form_validation;
$validation->set_rules($petugas->rules());
if($validation->run()) {
$petugas->simpan();
$this->session->set_flashdata('berhasil', 'Data berhasil ditambah!');
}
$this->load->view('petugas/petugas-tambah');
}
问题在于自定义 id,我可以干净地将数据从表单插入数据库,但自定义 id 总是返回 0。
谢谢!
【问题讨论】:
-
插入记录后可以得到最后插入ID。所以把这行代码
$custom_id = $this->custIdPetugas();放在这行$this->db->insert($this->tbl, $data);之后 -
我收到一个错误,未定义的变量 custom_id。因为它的过程,从第一行到最后一行。所以 $custom_id = $this->custIdPetugas();最后读入,并在此之前声明 custom_id 可能是错误的
-
检查我的答案
标签: php codeigniter codeigniter-3