【发布时间】:2012-02-27 22:58:39
【问题描述】:
我已将名为“My_Form_validation.php”的类文件放入“应用程序/核心”,我也尝试将其放入“应用程序/库”。
在我的控制器中我正在使用
$this->form_validation->set_rules('user_postcode', 'Postcode', 'valid_postcode|trim|required|xss_clean');
这是 My_Form_validation.php 中的内容 - 实际逻辑在这里没有问题,因为我有几个选项可以实际验证邮政编码。我需要帮助的是了解为什么它没有加载或被调用!
我的 CI 版本是 定义('CI_VERSION', '2.0.2');
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Form validation for UK Postcodes
*
* Check that its a valid postcode
* @author James Mills <james@koodoocreative.co.uk>
* @version 1.0
* @package FriendsSavingMoney
*/
class MY_Form_validation extends CI_Form_validation
{
function __construct()
{
parent::__construct();
log_message('debug', '*** Hello from MY_Form_validation ***');
}
function valid_postcode($postcode)
{
/**
*
* UK Postcode validation expression from Wikipedia
* http://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom
*
* Note: Remember to strtoupper() your postcode before inserting into database!
*
*/
$pattern = "/^(GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9][0-9]) [0-9][ABD-HJLNP-UW-Z]{2})$/";
if (preg_match($pattern, strtoupper($postcode)))
{
return TRUE;
}
else
{
$this->set_message('valid_postcode', 'Please enter a valid postcode');
return FALSE;
}
}
}
【问题讨论】:
-
完整性检查:1) 文件为
application/libraries/MY_Form_validation.php, 2)$config['subclass_prefix'] = 'MY_';, 3) 您的配置日志阈值将输出您的调试消息(并且文件权限允许) -
没有线索。我不得不用各种
var_dump()和die()调用来调试它...... -
您是否尝试过编辑 language/english/form_validation_lang.php 文件,而不是在方法中设置消息?像这样:
$lang['valid_postcode'] = "Please enter a valid postcode"; -
应该是 MY_ 而不是 My_ 。根据您的问题参考 My_Form_validation.php 的内容,您似乎正在使用后者
-
我也遇到了同样的问题,我把文件放对了,文件名是正确的。我将库加载到我的控制器中。一切都安排妥当。但是我的自定义验证中的方法没有被加载。我收到此消息“无法找到验证规则:is_Fieldunique”。为什么会这样?
标签: forms validation codeigniter