我试图将表单数据保存到数据库。在控制器的 save() 函数中有一条语句
$data = $model->validate($form, $data);
但它总是返回空。我将问题追溯到 /libraries/joomla/form/form.php 中的 filter() 函数(随 joomla 包一起提供)。这是一些代码(缩短):
$input = new JRegistry($data);
$output = new JRegistry;
foreach ($fields as $field)
{
// Initialise variables.
$name = (string) $field['name'];
if ($input->exists($name)){
$output->set($name, $this->filterField($field, $input->get($name, (string) field['default'])));
}
}
$input 看起来像:
JRegistry Object ( [data:protected] => stdClass Object ( [jform] => stdClass Object ( [title] => Utility Model/Patent application [ap_name] => d ...) [option] => com_eipoapplications [task] => save ) )
并且循环中的每个 $name 始终包含表单元素名称(如 'title'、'ap_name' ... )。但是 if 条件语句总是返回 false。有没有人帮我知道为什么 JRegistry exists() 函数找不到元素?