php – 在codeigniter 2.x中创建自定义回调验证规则

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 在codeigniter 2.x中创建自定义回调验证规则脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
何在codeignITer 2.x中创建自定义验证规则,它可以在整个应用程序中常用?

知道我们可以在控制器中创建回调函数,然后可以在验证规则中使用 –

$this->form_validation->set_rules('user_dob','Date of Birth','required|callback_validDate|callback_validAge');

现在我们可以在控制器中创建验证功能

public function validDate($date) {
     $d = DateTime::createFromFormat('d-M-Y',$date);
     if ($d && $d->format('d-M-Y') == $date)
          return TRUE;

     $this->form_validation->set_message('validDate',' %s is not in correct date format');
     return FALSE;
}

但是有一个限制.我只能在特定的控制器内使用此方法.此功能不能用于其他控制器.我将不得不再次编写相同的代码.

为此我尝试使用给定的验证函数创建帮助文件,但再次没有运气.

那么如何多次使用验证功能,在codeigniter中的公共文件中创建一次?

解决方法

我也遇到了同样的问题.所以我遇到了一个创建验证功能解决方案,在控制器周围都很常见.

使用以下代码在目录/ application / libraries /中创建一个文件MY_Form_validation.PHP

<?PHP

if (!defined('BASEPATH'))
    exit('No direct script access Allowed');

class MY_Form_validation extends CI_Form_validation {

    PRotected $CI;

    function __construct() {
        parent::__construct();
        $this->CI = &amp; get_instance();
    }

    function validDate($date) {
        $this->CI->form_validation->set_message('validDate',' %s is not in correct date format');

        $d = DateTime::createFromFormat('d-M-Y',$date);
        if ($d && $d->format('d-M-Y') == $date)
            return TRUE;

        return FALSE;
    }
}

现在在您的控制器中,您可以使用函数名称作为新规则 –

$this->form_validation->set_rules('user_dob','required|validDate|validAge');

如果需要,你可以在控制器的构造函数中加载库 –

$this->load->library('form_validation');

有关详细信息,请参阅链接-https://arjunphp.com/custom-validation-rules-codeigniter/

脚本宝典总结

以上是脚本宝典为你收集整理的php – 在codeigniter 2.x中创建自定义回调验证规则全部内容,希望文章能够帮你解决php – 在codeigniter 2.x中创建自定义回调验证规则所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。