2011-12-26 30 views
2

我制作了一个在行动中有效的复杂表单。我想从这个输入中获得价值来保存服务器上的文件。如何从窗体获得价值(symfony 1.4)

<input type="text" 
    name="produkty[pForm][1][caption]" 
    id="produkty_pForm_1_caption" /> 

我已经试过类似的东西:

$this->form=new ProduktyForm(); 

if ($request->isMethod(sfRequest::POST)) 
{ 
    $this->form->bind($request->getParameter('produkty'),$request->getFiles('produkty')); 
    if ($this->form->isValid()) 
    { 
     $file=$this->form->getValue('produkty[pForm][1][src]'); 
     $filename='u'; 
     $extension = $file->getExtension($file->getOriginalExtension()); 
     $file->save(sfConfig::get('sf_upload_dir').'/'.$filename.$extension); 
    } 
} 

但它不工作。

+0

“它不工作”通常_always_不足的错误描述。 – 2011-12-26 16:37:56

回答

3

'produkty'是您的表单的名称。您是否使用子窗体捕获可能要输入的文件的数组?

通过这样做可以获得整个表单的值。

$form_vals = $this->form->getValues(); 

然后你可以看到你的输出有什么变量。

您可能会以这种方式获得输入。

$caption = $form_vals['pForm'][1]['caption']; 

这工作正常,但如何从文件属性中获取值。我不能从文件输入获取值 我的主要形式名字是滑梯和子窗体MSLIDE

这里是我的代码

$this->multiSlideForm->bind($request->getParameter('slide'), $request->getFiles('slide')); 
$form_vals = $this->multiSlideForm->getValues(); 
echo $form_vals['mslide'][0]['slide_name']; //working 
echo $this->multiSlideForm->getValue('[mslide][0][file_name]')->getOriginalName(); //not working 
+0

Thx它的工作原理!圣诞快乐和新年快乐 ! – fantomas 2011-12-26 16:51:48

+0

你接受答案吗? – richrosa 2011-12-28 13:57:38