php – 在codeigniter 2.x中创建自定义回调验证规则
发布时间:2020-12-13 16:05:39 所属栏目:PHP教程 来源:网络整理
导读:如何在codeigniter 2.x中创建自定义验证规则,它可以在整个应用程序中常用? 我知道我们可以在控制器中创建回调函数,然后可以在验证规则中使用 – $this-form_validation-set_rules('user_dob','Date of Birth','required|callback_validDate|callback_validA
如何在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 = & 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/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |