【问题标题】:Handling CodeIgniter form validation (rule keys and data types)处理 CodeIgniter 表单验证(规则键和数据类型)
【发布时间】:2017-07-04 22:02:56
【问题描述】:

好的,所以我一直在寻找这个问题,但找不到可以向我解释这个问题的答案(或者至少是一些直接的答案)。

我一直在使用 CodeIgniter 3.x 表单验证库,所以我有一些这样的数据:

// Just example data
$input_data = [
    'id'        => 1,
    'logged_in' => TRUE,
    'username'  => 'alejandroivan'
];

然后,当我想验证它时,我使用:

$this->form_validation->set_data($input_data);
$this->form_validation->set_rules([
    [
        'field'    => 'id',
        'label'    => 'The ID to work on',
        'rules'    => 'required|min_length[1]|is_natural_no_zero'
    ],
    [
        'field'    => 'username',
        'label'    => 'The username',
        'rules'    => 'required|min_length[1]|alpha_numeric|strtolower'
    ],
    [
        'field'    => 'logged_in',
        'label'    => 'The login status of the user',
        'rules'    => 'required|in_list[0,1]'
    ]
]);

if ( $this->form_validation->run() === FALSE ) { /* failed */ }

所以我在这里有一些问题:

  • label 密钥真的有必要吗?我没有以任何方式使用表单验证自动生成的错误消息,我只想知道数据是否通过了验证。如果我忽略它,其他东西会失败吗?由于这将是一个 JSON API,我真的不想打印该字段的描述,只是我已经定义的静态错误。
  • 在我的示例的username 字段中,required 规则会检查长度吗?换句话说,min_length 在这种情况下是可选的吗? alpha_numeric... 的同样问题是空字符串被认为是字母数字吗?
  • logged_in 字段(布尔值)中,如何检查TRUEFALSEin_list[0,1] 就足够了吗?我也应该包括required 吗?有没有类似is_boolean 的东西?

提前谢谢你。

【问题讨论】:

  • 我还要指出,如果您愿意,您可以轻松扩展 form_validation 库并添加 is_boolean 规则。这实际上并不是一个糟糕的主意。

标签: codeigniter validation codeigniter-3


【解决方案1】:
  1. “标签”键是必需的,但可以为空。
  2. “必需”规则不检查长度,“alpha_numeric”也不检查。它检查一个值是否存在,它不检查所述值的长度。为此,有 min_length[] 和 max_length[]。
  3. 如果您只传递 0 或 1,那么这可能是最简单、最短的路线。

【讨论】:

    猜你喜欢
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2021-05-13
    • 2020-07-02
    相关资源
    最近更新 更多