【发布时间】:2012-02-17 00:17:01
【问题描述】:
我在配置中的 form_validation.php 中有我的规则,它调用 MY_Form_validation.php 中扩展 CI_Form_validation 的函数。
form_validation.php 规则:
array(
'field' => 'phone',
'label' => 'Phone',
'rules' => 'is_valid_phone'
),
MY_Form_validation.php 方法:
public function is_valid_phone($phone)
{
echo 'phone validation: '.$phone;
return preg_match("/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x", $phone) ? true : false;
}
form_validation 中不调用 is_valid_phone 和 is_valid_postal_code 的其他规则在开发和生产中都能正常工作。出于某种原因,这两种方法适用于开发,但不适用于生产。 php版本略有不同。开发版 5.2.8 和产品版 5.2.17。所有文件都已同步,我可以确认。我在 is_valid_phone 方法中添加了一个 echo 语句,它显示在 dev 上,但不在 prod 上。
我不知道可能是什么问题。有什么想法吗?
谢谢大家。
【问题讨论】:
-
你用
$this->set_message("is_valid_phone", "The %s is in an invalid phone format XXX-XXX-XXXX");试过了吗 -
您是否为有效手机的消息设置了 lang 文件?
-
$CI->form_validation->set_message('is_valid_phone','error'); $CI->form_validation->set_message('is_valid_postal_code','error');
标签: php codeigniter