回调函数在所有验证之前调用

时间:2017-01-19 16:52:03

标签: php codeigniter

首先回调验证调用,然后调用所需的验证。我想先调用必要的验证。

我的set_validation函数代码:

public function set_validation()
{
    $this->form_validation->set_rules('from', 'Ended Date', 'required|callback_compareDates');
}

1 个答案:

答案 0 :(得分:2)

为了改变执行顺序,您需要修改/system/libraries/Form_validation.php

中的核心库文件

来自功能

protected function _prepare_rules($rules)
{
...
...
return array_merge($callbacks, $new_rules);
}

更改

return array_merge($callbacks, $new_rules);

return array_merge($new_rules, $callbacks);

请阅读Form_validation.php

如果不修改核心,你必须在更多的回调函数上创建,该函数执行规则required的功能,如下所示

function required($str)
{

    if(!is_array($str) ? (empty($str) === FALSE): (trim($str) !== ''))
    {
       $this->form_validation->set_message('from', 'Required error message');
       return false
    }

    return true;
}

并在您的控制器中

public function set_validation()
{
    $this->form_validation->set_rules('from', 'Ended Date', 'callback_required|callback_compareDates');
}