Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Joomla Can';t使用JInput将文件名保存到数据库中_Joomla_Save_Joomla2.5_Jinput_Jform - Fatal编程技术网

Joomla Can';t使用JInput将文件名保存到数据库中

Joomla Can';t使用JInput将文件名保存到数据库中,joomla,save,joomla2.5,jinput,jform,Joomla,Save,Joomla2.5,Jinput,Jform,我有一个带有文本和文件类型输入字段的表单。我有一个问题,文件名没有保存在数据库中,但其他的都保存在数据库中。我转储了$myForm,所有的东西都在那里,除了文件,所以我用文件名创建了另一个数组,并将其与$myForm合并。然后我尝试将它设置为“jform”,但它似乎不起作用。有人知道为什么吗?谢谢 controller.php function save() { $jinput = JFactory::getApplication()->input;

我有一个带有文本和文件类型输入字段的表单。我有一个问题,文件名没有保存在数据库中,但其他的都保存在数据库中。我转储了$myForm,所有的东西都在那里,除了文件,所以我用文件名创建了另一个数组,并将其与$myForm合并。然后我尝试将它设置为“jform”,但它似乎不起作用。有人知道为什么吗?谢谢

controller.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();
    }

除非您计划编写大量验证代码以保护用户输入,否则不要使用$\u POST

相反,使用
$jinput->get('jform',null,'raw')


这仍将应用一些验证,但应保持您的价值观的圆滑。

这可能会有所帮助-谢谢!最后使用了$\u POST['jform']=$merged\u数组;