我在編輯具有文件的實體時遇到問題。 我遵循Symfony文檔上傳文件,它工作正常。 創建時,我的文件存儲在我的上傳文件夾中,加密名稱存儲在數據庫中。Symfony 3 - 文件編輯窗體不顯示照片名稱
對於版我也跟着文檔,以免有任何錯誤,我引用:
當創建一個表單編輯一個已經持久化項目,該文件表單類型仍然期望一個文件實例。由於持久化實體現在僅包含相對文件路徑,因此首先必須將配置的上載路徑與存儲的文件名連接起來,然後創建一個新的文件類
然後運行。
但形式的顯示屏上,該文件字段說 「沒有文件選擇」
這裏是我的控制器:
public function editAction(Request $request, Produits $entity)
{
$entity->setPhoto(
new File($this->getParameter('images_directory').'/'.$entity->getPhoto())
);
$form = $this->createForm('ProjectBundle\Form\Produit\ProduitType', $entity);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
$this->addFlash('success', 'Le produit "'.$entity.'" a été modifié.');
return $this->redirectToRoute('produit_show', array('id' => $entity->getId()));
}
} elseif ($form->isSubmitted()) {
$this->addFlash('error', 'Le produit "'.$entity.'" n\'a pas pu être modifié.');
}
return $this->render('ProjectBundle:admin/Produit:edit.html.twig', array(
'entity' => $entity,
'form' => $form->createView(),
));
}
在我看來:
<div class="input-field{% if form.photo.vars.errors|length %} has-error{% endif %}">
{{ form_widget(form.photo,{'attr': {'class': 'form-control'}}) }}
{{ form_errors(form.photo) }}
</div>
如果我這樣做一個{{ dump(form.photo) }}
我得到關於屬於我的實體的照片的所有信息。
您是否有想法在圖片中獲取圖片的名稱?
謝謝!
嗨,你有沒有找到解決辦法?我堆積在同一點:-( – mario
其實,我認爲你不能「獲得該字段中的圖像的名稱」,由[這些原因](http://stackoverflow.com/questions/1696877/how-您可能希望顯示圖片,比如說,在「No file selected」字符串的下方顯示圖片,特別是如果您有一個圖片文件,形式來一次編輯多個對象,這將是很好的顯示不同的圖片。不幸的是,我不知道如何做到這一點。 – mario
確實,令人費解的問題是爲什麼似乎不可能顯示像{{形式.photo.name}},雖然很清楚如何顯示{{dump(form.photo)}},後者也顯示了photo.name。 – mario