2014-01-28 46 views
0

在我的控制器中,有一個基於Doctrine CRUD生成的相當經典的「創建」操作。symfony controllerAction持續幾次相同的對象

但是,當我通過點擊「創建」表單按鈕多次執行此操作時,同樣的對象被創建多次,因爲我點擊。

這是一個主要問題,因爲我的班級「操作」非常大,需要很長時間來記錄。用戶非常想要點擊幾次。

/** 
* Creates a new Operation entity. 
* 
* @Route("/", name="operation_create") 
* @Method("POST") 
* @Template("MyApplicationBundle:Operation:new.html.twig") 
*/ 
public function createAction(Request $request) 
{ 
    $entity = new Operation(); 
    $form = $this->createForm(new OperationType(), $entity, array(
     'em' => $this->getDoctrine()->getManager(), 
    )); 
    $form->bind($request); 

    if ($form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $entity->setdateCreation(new \DateTime()) 
       ->setUser($this->get('security.context')->getToken()->getUser()); 
     $em->persist($entity); 
     $em->flush(); 
     $this->get('session')->getFlashBag()->add('success', 'OK'); 
     return $this->redirect($this->generateUrl('operation_show', array('id' => $entity->getId()))); 
    } 
    return array(
     'entity' => $entity, 
     'form' => $form->createView(), 
    ); 
} 

如果任何人都可以幫助我,這將是非常好的。

+1

通過javascript首次點擊後,禁用按鈕? –

+0

可能的重複http://stackoverflow.com/questions/926816/how-to-prevent-multiple-form-submit-from-client-side http://stackoverflow.com/questions/2830542/prevent-double-submission -of-表單中,jQuery的 – zizoujab

回答

2

點擊create按鈕後,您必須禁用或使用JavaScript刪除它們,並且用戶無法再次點擊它。

如果你使用jQuery:

<input type="submit" onclick="jQuery(this).attr('disabled', 'disabled')">