【发布时间】:2015-08-28 08:09:39
【问题描述】:
我在使用带有 CodeIgniter 3.x 的 form_validation 库时遇到了问题:
我想使用模型函数作为输入的验证规则。当我提交表单时,似乎根本没有调用该函数。 According to the user guide,这是我从控制器执行此操作的方式:
if($this->input->post() !== false)
{
$this->form_validation->set_rules(
'username', //the post value to check
'User Name',
array(
'trim',
'required',
array($this->user_model, 'checkUserName') // i want to call checkUserName from the user_model model
)
);
我不明白为什么它甚至不调用 user_model 中的 checkUserName 函数:有人知道吗?
[EDIT]:我在 system/libraries/form_validation.php 中看到了 set_rules() 函数的源代码。似乎如果第三个参数不是字符串,它什么都不做,所以我不能调用模型函数。用户指南不是最新的? 这是我从 form_validation 中找到的代码行:
// No fields? Nothing to do...
if ( ! is_string($field) OR ! is_string($rules) OR $field == '')
{
return $this;
}
【问题讨论】:
-
您是否在构造函数中加载了模型文件并确保您运行的是 PHP 5.3+ !!
-
是的:我正在运行 php 5.6.10,并且模型已加载到我的控制器的构造函数中。
-
你有什么错误吗??
-
日志阈值在我的 config.php 文件中定义为 4:没有任何可疑之处,即使在 php 错误日志中也是如此。看来 form_validation 只是忽略了这个规则
-
你有没有代码进入这个条件
if($this->input->post() !== false)
标签: php codeigniter