在我正在構建的這個項目中,我有許多表單來向網站使用的數據庫添加數據。顯然,如果用戶添加數據,他們必須能夠編輯這些數據(或刪除它)。將數據從數據庫顯示到Symfony2中的表格
我已經瀏覽過這本書,它會詳細討論如何使用表單添加數據。但是,似乎沒有提及如何使用表單來編輯數據。
這是如何實現的?
乾杯
在我正在構建的這個項目中,我有許多表單來向網站使用的數據庫添加數據。顯然,如果用戶添加數據,他們必須能夠編輯這些數據(或刪除它)。將數據從數據庫顯示到Symfony2中的表格
我已經瀏覽過這本書,它會詳細討論如何使用表單添加數據。但是,似乎沒有提及如何使用表單來編輯數據。
這是如何實現的?
乾杯
如果你想,這是很容易寫你的編輯操作沒有教義,你應該做這樣的事情:
public function editAction($id) {
$em = $this->getDoctrine()->getEntityManager();
$repository = $em->getRepository('YourBundle:YourEntity');
$element = $repository->find($id);
if (false !== is_null($element)) {
throw $this->createNotFoundException('Couldn\'t find element ' . $id . '!');
}
$form = $this->createForm(new YourFormType(), $element);
$request = $this->getRequest();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
$em->persist($element);
$em->flush();
$this->get('session')->setFlash('system-message', 'Element Updated!');
return $this->redirect($this->generateUrl('Your_route'));
}
}
return $this->render('YourBundle:YourView:your_template.html.twig', array('element' => $element, 'form' => $form->createView()));}
的編輯行動與新行動的唯一不同的是它不是創建一個新的「元素」實例,而是從實體管理器中獲取它,甚至可以在將元素附加到表單之前爲其設置任意值。
我希望它有幫助!
使用generate:doctrine:crud
任務生成編輯/更新的用戶代碼。你會看到newAction和editAction非常相似。
這將做什麼?我寫了代碼保持數據到數據庫的工作正常。這個命令會覆蓋這段代碼嗎? – mickburkejnr
好問題...我不知道。使用版本控制來避免意外。 – greg0ire
爲什麼這個命令感覺像你不應該按的大紅色按鈕。當我嘗試時,我會盡快回復你。 – mickburkejnr
這已經幫了很多。但是,它不會編輯記錄。它會取回記錄,然後在我提交後將其添加爲新記錄。是什麼原因造成的? – mickburkejnr
忽略最後的評論。我豎起了代碼。非常感謝!!! – mickburkejnr