2

我正在 CodeIgniter 中构建 API,但在验证 UPDATE 方法时遇到问题。我的表有 3 列(加上 id):

  • 城市

我希望客户端能够更新 3 列中的任何一个,并将验证规则(例如 min_length [1])应用于客户端想要更新的每一列。

问题是,如果客户端发布这个:

first_name=Foo&last_name=

它跳过验证last_name,因为 CodeIgniter 将其视为“空”并且我的验证不是“必需的”。但是当活动记录尝试UPDATE记录 MySQL 中的记录时,它设置last_name""(空)。

我不希望这些字段是必需的,但如果设置了它们,它们应该有一个最小长度。

有任何想法吗?

4

1 回答 1

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); 

希望有意义

于 2013-08-04T17:28:15.807 回答