Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter表单验证库_Php_Codeigniter_Function_Validation - Fatal编程技术网

Php Codeigniter表单验证库

Php Codeigniter表单验证库,php,codeigniter,function,validation,Php,Codeigniter,Function,Validation,我正在使用表单验证库,但是遇到了一些我无法解决的问题 我有几个领域 我有: 页面标题=>必需 菜单标题=>不需要 父\u id=>null或必需 现在,如果未设置菜单标题,则应采用页面标题的值。 然后,我需要做一个检查,以确保在给定的级别上,菜单标题是唯一的 所以 但我不知道如何在表单验证库中实际使用它?您需要使用回调函数才能做到这一点。只需定义一个(稍微更改代码以适应格式)。注意,这是我脑子里想不出来的(和文档): 然后将该特定字段的输入设置为使用回调: $this->form_va

我正在使用表单验证库,但是遇到了一些我无法解决的问题

我有几个领域

我有:

  • 页面标题=>必需
  • 菜单标题=>不需要
  • 父\u id=>null或必需
现在,如果未设置菜单标题,则应采用页面标题的值。
然后,我需要做一个检查,以确保在给定的级别上,菜单标题是唯一的

所以


但我不知道如何在表单验证库中实际使用它?

您需要使用回调函数才能做到这一点。只需定义一个(稍微更改代码以适应格式)。注意,这是我脑子里想不出来的(和文档):

然后将该特定字段的输入设置为使用回调:

$this->form_validation->set_rules('menu_title', 'Menu Title', 'callback_check_title');
我认为您可以在回调函数名的左侧添加一个额外的下划线,以确保CI不会对其进行路由(因为它是公共的),并且只反映您在规则中输入回调名称的位置。不过,我对此并不乐观

由于回调只接受字符串,因此只需设置一个类变量即可传递附加字段


您也可以自己处理验证,这在您的情况下可能更干净

您需要使用回调函数才能做到这一点。只需定义一个(稍微更改代码以适应格式)。注意,这是我脑子里想不出来的(和文档):

然后将该特定字段的输入设置为使用回调:

$this->form_validation->set_rules('menu_title', 'Menu Title', 'callback_check_title');
我认为您可以在回调函数名的左侧添加一个额外的下划线,以确保CI不会对其进行路由(因为它是公共的),并且只反映您在规则中输入回调名称的位置。不过,我对此并不乐观

由于回调只接受字符串,因此只需设置一个类变量即可传递附加字段


您也可以自己处理验证,这在您的情况下可能更干净

您是在哪里设置验证规则的,还是取得了这样的进展?是的,我在提交表单时有验证规则的开始,例如,我有页面标题必需检查,并且在父id上运行exists回调,这只是我没有得到的更复杂的部分。从技术上讲,我可以使用回调函数,并在函数内部通过
$this->input->post('whatever')
访问其他两个变量,但这对我来说似乎不对。嗯,是的,你需要设置自己的回调函数(例如
$this->form\u validation->set\u rules)(“菜单标题”、“菜单标题”、“我的回调函数”);
,并在函数中计算查询结果。有关如何编写该函数的示例,请参阅ctrl-f并查找
回调
。是的,我使用回调来确保父id确实存在,我猜我将对菜单标题使用回调,我想我最好奇的是如何使用a)将多个参数传递给回调,或者我应该直接使用post结果访问它们吗?您在哪里设置了验证规则,或者您做到了这一点?是的,在提交表单时,我有验证规则的开始,例如,我有页面标题需要检查,并且在父id上运行一个存在的回调,这只是我没有得到的更复杂的部分。从技术上讲,我可以使用回调函数,并在函数内部通过
$this->input->post('whatever')
访问其他两个变量,但这对我来说似乎不对。嗯,是的,你需要设置自己的回调函数(例如
$this->form\u validation->set\u rules)(“菜单标题”、“菜单标题”、“我的回调函数”);
,并在函数中计算查询结果。有关如何编写该函数的示例,请参阅ctrl-f并查找
回调
。是的,我使用回调来确保父id确实存在,我猜我将对菜单标题使用回调,我想我最好奇的是如何使用a)将多个参数传递给回调,还是直接使用post结果访问它们?
$this->form_validation->set_rules('menu_title', 'Menu Title', 'callback_check_title');