我使用Codeigniter回调函数(请参见下面的代码),我想知道是否在将输入发送回回函数之前检查输入是否为alpha_numeric,因为我不想传递非 - 我的回调函数的字母数字输入。
$this->form_validation->set_rules('code', 'Code', 'alpha_numeric|callback_check_code');
public function check_code($value) {
$this->model_abc->did_check_code($value);
$this->form_validation->set_message('check_code', 'Please enter the code correctly.');
}
更新
我发现在Codeigniter规则中从左到右运行,一旦失败,它就会停止检查并将该字段标记为“未通过验证”。并将邮件设置为第一个失败的规则。因此,如果输入不是字母数字,则输入将不会传递给我的回调函数。
答案 0 :(得分:1)
如果要为现有库编写自己的规则,请执行以下步骤:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Form_validation extends CI_Form_validation {
function __construct($rules = array()) {
parent::__construct($rules);
log_message('debug', '*** Hello from MY_Form_validation ***');
}
function check_code($postcode) {
// Do it according to your need
}
}
并将文件保存在application/libraries
中。有关详细信息,请查看以下链接https://ellislab.com/codeigniter/user-guide/general/creating_libraries.html,并查看扩展本机库
首先了解hows规则是否有效'alpha_numeric|callback_check_code'
验证库逐个检查给定规则并根据错误或值进行设置。表示如果alpha_numeric
和callback_check_code
都验证数据,则返回$this->form_validate->run() == true
。