2011-12-26 42 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