使用新版本的 CodeIgniter;您只能在静态form_validation.php
文件中设置规则。我需要分析发布的信息(即仅当他们选择复选框时)。只有这样,我才希望验证某些字段。最好的方法是什么,或者我必须使用现在已弃用的旧表单验证类?
Click Upvote
问问题
12929 次
3 回答
5
您不能只在 config/form_validation.php 文件中设置规则。您还可以使用以下方式设置它们:
$this->form_validation->set_rules();
更多信息:http ://codeigniter.com/user_guide/libraries/form_validation.html#validationrules
但是,CI 的优先顺序是首先检查是否有使用 set_rules() 设置的规则,如果没有,则查看配置文件中是否定义了规则。
因此,如果您在配置文件中添加了规则,但您在操作中调用了 set_rules(),则永远不会达到配置规则。
知道,对于条件验证,我将在模型中有一个特定方法,该方法根据输入(针对该特定操作)初始化 form_validation 对象。我需要这样做的典型情况是验证送货地址和账单地址(它们是相同还是不同)。
希望有帮助。:)
于 2009-02-28T14:17:01.053 回答
3
您可以编写自己的函数来检查是否选择了所述复选框,并手动应用验证。
function checkbox_selected($content) {
if (isset($_REQUEST['checkbox'])) {
return valid_email($content);
}
}
$this->form_validation->set_rules('email', 'Email', 'callback_checkbox_selected');
于 2009-02-27T14:01:56.560 回答