我有一个带有文本和文件类型输入字段的表单。我遇到的问题是文件名未保存在数据库中,但其他所有内容都保存在数据库中。我对 $myForm 进行了 vardump,除了文件之外的所有内容都在那里,因此我使用文件名创建了另一个数组并将其与 $myForm 合并。然后我尝试将其设置为“jform”,但它似乎不起作用。有人知道为什么吗?谢谢!
控制器.php
function save()
{
$jinput = JFactory::getApplication()->input;
$myForm = $jinput->get('jform', null, 'array');
//$files = $jinput->files->get('jform');
$file_array = ['image1' => 'test.png',
'image2' => 'test2.png'];
$merged_array = array_merge($myForm, $file_array);
$jinput->set('jform',$merged_array);
//or $jinput->post->set('jform',$merged_array); (this doesn't work either)
return parent::save();
}
不要使用$_POST,除非您计划编写大量验证代码来保护用户输入。
相反,请使用$jinput->get('jform', null, 'raw');