2015-04-21 60 views
1

我正在Symfony2項目中工作,我有一個名爲File的實體。在一個頁面中,我有一個文件列表,我爲每個文件添加了一個check-box,我想要的是在文件列表的末尾有一個submit button,當我點擊按鈕時,我希望文件被刪除。我已經實現了action這將刪除文件,但我不知道如何獲取選定的文件,所以我可以將它們傳遞給deleteAction($files)Symfony2獲取所有選中的複選框

這裏是樹枝文件的代碼:

<tr> 
<th>File name</th>      
<th>Commentary</th> 
<th>Size</th> 
<th>Product/ SN</th> 
<th>Added at(UTC)</th> 
</tr> 

{% for file in allFiles %} 
    <tr>       
    <td class="name"> 
     <form name="form1" method="post" action=""> 
     <input type="checkbox" name="check_file"> {{ file.filename }} 
     </form>        
    </td>          

    <td>{{ file.uploaderComment }}</td> 
    <td>{{ _self.bytesToSize(file.filesize) }}</td> 


    <td>{{ file.product }}</td> 
    <td>{{ file.added |date("Y/m/d H:i:s","UTC") }}</td> 

    </tr> 
{% endfor %} 

回答

0

您可以在處理表單提交的控制器中添加邏輯。

$form->handleRequest($request); 

if ($form->isValid()) { 
    // perform some action, such as deleting any file with field marked 'delete' 
    $data = $form->getData(); 
    $data->getFiles(); 
    $deletethese = new ArrayCollection(); 
    foreach($files as $file){ 
     if($file->delete() == true){ 
      $deletethese->add($file); 
     } 
} 

deleteAction($deletethese); 

return $this->redirectToRoute('task_success'); 
} 

請參閱有關form submissions的文檔。