我已經嘗試了幾乎所有在我的知識,並在網上找到,但沒有任何工作。我想要做的是在添加新記錄時我想檢查字段值是否已經在數據庫表中。如果不是add add throw錯誤信息。Codeigniter:公司獨特的驗證不起作用
我也嘗試過與is_usnique
但它不允許修改數據,因爲它正在考慮表單值存在。
表名是位置
Coloumn名字是位置
輸入字段名稱爲位置
我曾嘗試下面的代碼在我的控制器
public function _unique_poscode()
{
$id = $this->uri->segment(4);
$this->db->where('position', $this->input->post('position'));
!$id || $this->db->where('id !=', $id);
$poses = $this->positions_model->get();
if (count($poses)) {
$this->form_validation->set_message('_unique_poscode', '%s should be uinique');
return FALSE;
}
return TRUE;
}
並設置規則我的型號如下
public $rules = array(
'position' => array(
'field' => 'position',
'label' => 'Position Code',
'rules' => 'trim|required|max_length[10]|callback__unique_poscode|xss_clean'
),
'label' => array(
'field' => 'label',
'label' => 'Position Label',
'rules' => 'trim|required|max_length[50]|xss_clean'
),
);
但無論我做什麼,它都不起作用,即使它存在於表格中也會添加記錄。
任何人都可以幫我解決這個問題嗎?非常感謝。
你不需要爲這個已經有funcion由笨作出回調。 – Kyslik
你能否給我提供一些參考代碼或任何參考鏈接,看看如何鍛鍊? –
你有沒有試過在規則上使用'is_unique ['table_name'。'field_name']'? – fawwaz