2011-12-26 14 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_です。 –

答えて

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

+0

答えを受け入れましたか? – richrosa

関連する問題