我尝试使用回调函数验证密码字段。但是,当我使用以下代码时,所有验证在我输入1234(回调条件)时不再起作用。当我删除包含回调函数的验证时,其他验证工作正常..
这是我的验证规则
$crud->set_rules('password', 'Password', 'callback_valid_password');
$crud->set_rules('confirm_password', 'Password Confirmation', 'required|matches[password]');
$crud->set_rules('email', 'Email', 'trim|required|valid_email');
这是我的回调函数
function valid_password($str) {
if ($str=="1234")
{
$crud->set_message('_valid_password', 'The field should be 1234');
//do some pw validation
return FALSE;
}
else
{
return TRUE;
}
}
请帮我找到这里有什么问题..提前谢谢 p.s - 我正在使用php 5.4版本和最新的杂货crud版本
答案 0 :(得分:1)
function valid_password($str) {
if ($str=="1234")
{
$this->form_validation->set_message('valid_password', 'The field should be 1234');
//do some pw validation
return FALSE;
}
else
{
return TRUE;
}
}
答案 1 :(得分:0)
检查您的函数名称,您的回调名称为:callback_valid_password
。
使用该名称更改函数的名称,而不仅仅是valid_password
答案 2 :(得分:0)
对于仍在努力寻找解决方案的人,请遵循清单。
您是将CodeIgniter用作MVC还是HMVC?
1。 HMVC
(A)-按照以下建议检查是否已更新文件( ./ application / libraries / Grocery_crud.php )。
(B)-在“ 类Grocery_CRUD扩展食品杂货_CRUD_States ”内的“ __ construct ”之前,添加“ 受保护的$ hmvc; < / strong>”
(C)-使用以下命令更新“ __construct”:
public function __construct($hmvc = null)
{
$this->hmvc = $hmvc;
}
(D)-使用以下内容更新“ form_validation”:
protected function form_validation()
{
if ($this->form_validation === null) {
$this->form_validation = new grocery_CRUD_Form_validation();
if ($this->hmvc) $this->form_validation->CI = $this->hmvc;
$ci = &get_instance();
$ci->load->library('form_validation');
$ci->form_validation = $this->form_validation;
}
return $this->form_validation;
}
(E)-在控制器中使用“ $ crud = new Grocery_crud($ this); ”代替“ $ crud = new Grocery_crud(); ”。 / p>
[F)- GC set_rules示例:
$crud->set_rules("level_title", 'Level Title Label', 'trim|required|callback_unique_level_field_check');
(G)-回调方法示例:
public function unique_level_field_check ($level_title)
{
if ( empty($level_title))
{
$this->form_validation->set_message('unique_level_field_check', "Level Title Label should be unique");
return FALSE;
}
return TRUE;
}
2。 MVC
仅遵循F&G(上方)。
GroceryCRUD论坛:See details here