我想创建一个独立于任何表单字段的验证规则 . Codeigniter有可能吗?据我在文档中看到的那样,set_rules方法需要一个表单字段名称作为第一个参数 .
即便如此,我试过了
$this->form_validation->set_rules('products_count', 'products_count', 'callback_products_count_check');
这是回调检查
function products_count_check()
{
$user = $this->user_model->get(array(
'id' => $this->session->userdata('user_id')
));
if ( ! empty($user))
{
$kit = $this->kit_model->get(array('id' => $user->kit_id));
if ( ! empty($kit)) {
$products_count = $this->product_model->get(array('user_id' => $user->id, 'count' => TRUE));
if ($products_count >= $kit->max_products) {
$this->form_validation->set_message('products_count_check', lang('products.max_products_reached'));
return FALSE;
}
}
}
return TRUE;
}
该函数返回false,但未显示错误消息 .
有任何想法吗?
谢谢 .
2 回答
我认为你根本不想使用表格验证......
这听起来像是FLASHDATA的工作!
看看the session class,我会在这种情况下使用flash数据有几个原因
您没有验证表单字段,这是form_validation类的用途 .
Flashdata消息用于此目的
所以,在你的控制器中......
然后在视图中,创建一个通用错误处理程序
这看起来像是在处理表单之前可以检查的内容,除非我遗漏了某些内容 . 在这种情况下,我会在你的视图中处理这个逻辑 . 只需获取控制器中所需的所有产品和套件记录,并将其传递给视图,并使用条件在出现错误时向用户显示相应的通知消息 . 这比尝试使用验证类更容易,因为它并不是真的打算以这种方式使用 .