如何在codeigniter表单验证中使用来自helper的回调?

kcugc4gi  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(115)

控制器中表单验证代码是,

$this->form_validation->set_rules("name", "Name", "trim|callback_custom_validation");
if ($this->form_validation->run() !== FALSE) {}

我帮助器代码是,

function custom_validation($str) {
   // validation logic
}

如果我把这个custom_validation函数移到控制器上,那么它是在工作,但是它不是作为助手工作的。我需要从控制器和模型调用这个函数,所以我使用助手。那么如何从助手调用呢?

dfty9e19

dfty9e191#

有两种方法可以做到这一点。
您应该在application/helpers文件夹中创建一个帮助文件,并将函数放置在帮助文件中。然后将帮助文件加载到控制器中。
php:验证文件

function custom_validation($str) {
   // validation logic
}

控制器内部:

$this->load->helper('custom_validation');

您也可以扩充Form_validation程式库。
建立档案:application/libraries/MY_Form_validation.php

<?php
class MY_Form_validation extends CI_Form_validation {
    public function custom_validation($str) {
       // validation logic
    }
}

然后就像正常验证一样加载它:

$this->form_validation->set_rules('name', 'Name', 'required|custom_validation');
x9ybnkn6

x9ybnkn62#

将您的自定义验证方法添加到任何模型中,并在控制器和模型中使用它,如下例所示:

$this->form_validation->set_rules(
            'name', 'Name',
            array(
                'trim',
                'required',
                array($this->Mymodel_m, 'custom_validation')
             )
 ); 

if ($this->form_validation->run() !== FALSE) {...}

更多信息可致电:使用任何规则

相关问题