我正在CodeIgniter中构建API,而我在验证UPDATE方法时遇到问题。我的表有3列(加上id):
我希望客户端能够更新3列中的任何一列,并将验证规则(例如min_length [1])应用于客户端想要更新的每一列。
问题是,如果客户端POST这个:
first_name=Foo&last_name=
它跳过验证last_name
,因为CodeIgniter将其视为“空”,并且我的验证并非“必需”。但是当活动记录尝试UPDATE
MySQL中的记录时,它会将last_name
设置为""
(空)。
我不希望字段是必需的,但如果设置了它们,它们应该具有最小长度。
有什么想法吗?
答案 0 :(得分:0)
试试这个我给你的场景示例非强制性的字段,并且第一次它们具有存储在db中的值,并且第二次用户刚刚发送空白任何必填字段只是取消设置该索引您要存储在db中,以便之前的值保留在DB
中$first_name=$this->input->post("first_name");
$last_name=$this->input->post("last_name");
$city=$this->input->post("city");
$data = array(
'first_name' => $first_name,
'last_name' => $last_name,
'city' => $city
);
if(empty($last_name)){
unset($data['last_name'])
}
if(empty($city)){
unset($data['city'])
}
$this->db->where('id', $id);
$this->db->update('mytable', $data);
希望它有意义