【发布时间】:2013-08-05 01:41:33
【问题描述】:
我正在 CodeIgniter 中构建 API,但在验证 UPDATE 方法时遇到问题。我的表有 3 列(加上 id):
- 名字
- 姓氏
- 城市
我希望客户端能够更新 3 列中的任何一个,并将验证规则(例如 min_length[1])应用于客户端想要更新的每一列。
问题是,如果客户端发布这个:
first_name=Foo&last_name=
它跳过验证last_name,因为 CodeIgniter 将其视为“空”并且我的验证不是“必需的”。但是当活动记录尝试UPDATE MySQL 中的记录时,它会将last_name 设置为""(空)。
我不希望这些字段是必需的,但如果设置了它们,它们应该有一个最小长度。
有什么想法吗?
【问题讨论】:
-
将当前值从数据库传递到视图文件,并将它们作为默认值插入到 html 输入中。验证类在当前版本中有一个错误,最近我向 github 上的 CI Repository 发送了一个 PR,并在 v3.0 中修复了它。这是 SO 问题stackoverflow.com/questions/17771980/…
-
请贴出更新数据库的代码
-
@HashemQolami 没有视图 - 这是一个输出 JSON 的 API。在验证错误时,它会简单地响应错误。
-
@dianuj 这只是 ActiveRecord 的
$this->db->where('id', $id)->update('table', $this->post());没什么花哨的 -
@TobiasFünke 所以只需在更新行之前检查变量是否为空。
标签: codeigniter