首页 > 解决方案 > 如何在codeigniter表单验证中使用助手的回调?

问题描述

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

$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功能移动到控制器,那么它正在工作,但它不能作为助手工作。我需要从控制器和模型中调用这个函数,所以我正在使用助手。那么如何从助手调用呢?

标签: codeigniter

解决方案


有两种方法可以做到这一点。

您应该在 application/helpers 文件夹中创建一个帮助文件,并将函数放在帮助文件中。然后在控制器中加载帮助文件。

custom_validation.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');

推荐阅读