php - 大表单的 Codeigniter 表单验证(28 个字段)
问题描述
我的表格包含 28 个字段(客户要求)。我正在使用 Codeigniter 框架。我必须输入 28 行代码来进行表单验证。还有什么我可以做的,比如为表单验证创建助手。任何帮助,将不胜感激。谢谢
解决方案
这里没有标准或正确的方法,您最好的选择是为验证数组中的每个输入创建验证规则,也许您可以检查以对其中一些进行分类,例如“fname,lname, ...”那些具有相同的验证,但这不会为您节省任何只是增加开销的东西。
但也许你最好的办法是base_controller
像这样创建一个函数:
function set_validation_rules()
{
$this->load->library('form_validation');
$config = array(
array(
'field' => 'firstname',
'label' => $this->lang->line($line.'firstname'),
'rules' => 'trim|required|alpha|min_length[3]|max_length[15]'
),
array(
'field' => 'lastname',
'label' => $this->lang->line($line.'lastname'),
'rules' => 'trim|required|alpha|min_length[3]|max_length[15]'
),
array(
'field' => 'password',
'label' => $this->lang->line($line.'password'),
'rules' => 'trim|required|min_length['.$min.']|max_length['.$max.']'
),
array(
'field' => 'passconf',
'label' => $this->lang->line($line.'password_confirm'),
'rules' => 'trim|matches[password]'
)
);
$this->form_validation->set_rules($config);
}
或按照您的建议创建一个助手,但最重要的步骤是为自己制定一个 var/inputs 命名约定并养成习惯,以便来自不同视图的输入具有相同的名称,并将所有输入传递给此函数以在修改后进行验证通过向它添加一个 switch case,这样每个名字都有自己的规则,每个密码都有自己的规则,等等,希望你明白了。
推荐阅读
- sql - sqllite 中的哪些 SQL 查询需要使用以秒为单位的时间来计算今天的时间戳?
- javascript - 带有 flexbox-wrap 的响应式导航
- python - 绘制具有恒定条形宽度但具有不同 bin 大小的直方图
- javascript - DOM 元素 - Youtube 视频
- flutter - SnackBar 持续时间参数未定义
- nginx - 使用 nginx 出错时重定向到不同的上游
- python - 如何将列表中的元组列表转换为一维数组?
- c - 动态数组重新分配
- python - response.xpath().extract_first() 方法的问题
- java - How do I get the character before a specific character with regex?