gpt4 book ai didi

forms - 使用一组规则的 Codeigniter 表单验证

转载 作者:行者123 更新时间:2023-12-02 17:34:09 25 4
gpt4 key购买 nike

我正在尝试在我的 Codeigniter 项目中创建一组表单验证规则,以便当第一组验证失败时,第二组验证规则不应运行。

我在 CI 手册中找到了这个:

$config = array(
'signup' => array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'required'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'required'
),
array(
'field' => 'passconf',
'label' => 'PasswordConfirmation',
'rules' => 'required'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'required'
)
),
'email' => array(
array(
'field' => 'emailaddress',
'label' => 'EmailAddress',
'rules' => 'required|valid_email'
),
array(
'field' => 'name',
'label' => 'Name',
'rules' => 'required|alpha'
),
array(
'field' => 'title',
'label' => 'Title',
'rules' => 'required'
),
array(
'field' => 'message',
'label' => 'MessageBody',
'rules' => 'required'
)
)
);
$this->form_validation->set_rules($config);

我知道我现在可以单独运行每个集合的验证(在本例中为 $this->form_validation->run('signup') 和 $this->form_validation->run('email'))。

问题是,当我使用 $config 数组时,当表单发布失败时,错误不会添加到表单验证类中(因此不会显示)。当我没有使用规则集而只是使用 $this->form_validation->set_rules() 方法时,它确实添加并显示错误。

使用一组规则输入无效表单数据时,没有添加错误消息,我做错了什么?

最佳答案

$config 数组需要位于 application/config 目录中名为 form_validation.php 的文件中。然后在加载 CI 时自动加载它,并在创建表单验证对象时将其传递给表单验证对象。

第一次调用 FV 对象的 run() 方法时,如果 FV 对象中没有设置规则,它将查找创建时给出的配置规则,并使用按传递的名称索引的组作为 run() 的参数。以后在 CI 应用程序的同一调用中对 run() 的所有调用(即使具有不同的组名称)都将绕过此检查,因为现在已经设置了规则 - 即,您只能在调用中设置一次规则组。

因此,您将无法创建两组规则,然后依次调用一组规则。您可以调用其中之一,也可以调用另一个。

最好使用 set_rule() 级联您的规则 - 即使用 set_rule() 添加一些规则,然后针对它们进行验证。如果通过,请添加更多规则并重试验证。您有效地重复旧规则,知道它们会通过,但这意味着任何失败都将是新规则的结果。

关于forms - 使用一组规则的 Codeigniter 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com