0

我在使用 codeigniter 表单验证时遇到问题。

我的桌子是

Sr#, name , dob,pic



$this->form_validation->set_rules('name','Duplicate Name','trim|required|is_unique[mcb.name]');

现在,当我尝试使用 sr# 编辑任何记录并检查名称的表单验证(因为我也不想重复名称)时,它会给出错误。

我想做的是更新记录,但我也不想要重复的名字。

现在例如,如果我编辑记录并且不更改名称但更改

出生日期

但它显示了重复的名称。

我想检查重复的名称,但不是在我要更新的行中。

谢谢

4

1 回答 1

1

我认为解决方案很容易(如果我的问题正确)

制定两组规则

$this->form_validation->set_rules('name','Duplicate Name','trim|required|is_unique[mcb.name]');

$this->form_validation->set_rules('name','Duplicate Name','trim|required');

if()使用前做一个validation->run()

像这样

if ( strtoupper($this->input->post('name')) == strtoupper($old_name) ) { //pass old name in hidden field or load it before this condition via model

    $this->form_validation->set_rules('name','Duplicate Name','trim|strtoupper|required');

} else {

    $this->form_validation->set_rules('name','Duplicate','trim|required|strtoupper|is_unique[mcb.name]');

}

//all other form_validation checks here

if ($this->form_validation->run()) {}

//添加了编辑strtoupper(),因此您的唯一值确实是唯一的

于 2013-09-17T11:08:48.023 回答