2017-01-16 2 views
0

사용자가 필수 필드를 채워야하는 간단한 편집 양식이 있습니다. 문제는 필수 필드의 유효성 검사가 표시되지 않으며 필드 또는 데이터가 변경되지 않는다는 것입니다.Symfony 3로 데이터 업데이트

UPDATE은 내가 $form->isSubmitted() 위해서 var_dump과 여기 bool(false)

을 보여줍니다 내 컨트롤러 :

public function editAction(Request $request, $id) { 

    $company = $this->getDoctrine() 
     ->getRepository('SwipeBundle:Company') 
     ->find($id); 

    if(!$company) { 
     throw $this->createNotFoundException(
      'No Company found for id '.$id 
     ); 
    } 

    $form = $this->createForm(CompanyType::class, $company, array(
     'action'=>$this->generateUrl('swipe_backend_company_edit', array('id'=>$company->getId())), 
     'method'=>'PUT' 
    ));  

    if ($request->getMethod() == "POST") { 

      if ($form->isSubmitted()) { 

       // $em->persist($company); 
       // $em->flush(); 
       echo "Update"; 
      } 
     } 


    return $this->render('Backend/Company/edit.html.twig', array(
     'form'=>$form->createView(), 
     'company'=>$company 
    )); 
} 

그리고 여기 내 나뭇 가지 템플릿의 편집/업데이트에 대한

{% extends '::Backend/base.html.twig' %} 
{% block body %} 

    <!-- Section --> 
    <section class="sections"> 

     <!-- Side Bar --> 
     {% include '::Backend/side_menu_bar.html.twig' %} 

     <!-- Wrapper --> 
     <div id="administrator" class="wrapper"> 

      <div class="mt40 pt30"> <!-- Container --> 
       <h1 class="mb10 bold">Edit Company</h1> 
       <p class="mb30">Fill up all the required fields for Company.</p> 

       {% if not form.vars.valid %} 
        <p class="alert note-error"> 
         There are errors in your form. Please check the fields marked in red. 
        </p> 
       {% endif %} 

       <div class="alert note-error"> 
        <p>Fields with asterisk (*) are required</p> 
       </div> 

       {% set url = path('swipe_backend_company_edit', { 'id': company.id }) %} 

       <form novalidate method="post" action="{{ url }}" class="p20 card mb30"> 

        <div class="sections pb30 pt10"> 
         <fieldset class="col span6">      
          {% set attr = {} %} 
          {% if form_errors(form.name) is not empty %} 
           {% set attr = attr|merge({ 'class': 'alert error'}) %} 
          {% endif %} 
          <label for="" class="input-required"> 
           <strong>Company Name<span class="highlight-red">*</span> 
           </strong> 
          </label> 
          {{ form_widget(form.name, { 'attr': attr }) }} 
          {% if not form.name.vars.valid %} 
          <p class="mt10" style="color: #DC2B1B;"> 
           {{ form.name.vars.errors[0].message }} 
          </p> 
          {% endif %} 
         </fieldset> 

         <fieldset class="col span6"> 
          <strong> 
           {{ form_label(form.website) }} 
          </strong> 
          {{ form_widget(form.website) }} 
         </fieldset> 
        </div> 

        <div class="sections pb30 pt10"> 
         {% set attr = {} %} 
         {% if form_errors(form.email_address) is not empty %} 
          {% set attr = attr|merge({ 'class': 'alert error'}) %} 
         {% endif %} 
         <label for="" class="input-required"> 
          <strong>Company Email Address<span class="highlight-red">*</span> 
          </strong> 
         </label> 
         {{ form_widget(form.email_address, { 'attr': attr }) }} 
         {% if not form.email_address.vars.valid %} 
         <p class="mt10" style="color: #DC2B1B;"> 
          {{ form.email_address.vars.errors[0].message }} 
         </p> 
         {% endif %} 
        </div> 

        <div class="sections pb30 pt10"> 
         <fieldset class="col span6"> 
          <strong> 
           {{ form_label(form.telephone_no) }} 
          </strong> 
          {{ form_widget(form.telephone_no) }} 
         </fieldset> 

         <fieldset class="col span6"> 
          <strong> 
           {{ form_label(form.mobile_no) }} 
          </strong> 
          {{ form_widget(form.mobile_no) }} 
         </fieldset> 
        </div> 

        <div class="sections pb30 pt10"> 
         {% set attr = {} %} 
         {% if form_errors(form.address) is not empty %} 
          {% set attr = attr|merge({ 'class': 'alert error'}) %} 
         {% endif %} 
         <label for="" class="input-required"> 
          <strong>Company Address<span class="highlight-red">*</span> 
          </strong> 
         </label> 
         {{ form_widget(form.address, { 'attr': attr }) }} 
         {% if not form.address.vars.valid %} 
         <p class="mt10" style="color: #DC2B1B;"> 
          {{ form.address.vars.errors[0].message }} 
         </p> 
         {% endif %} 
        </div> 

        <div class="text-right mt20 mb10"> 
         <button class="btn btn-positive mt10 mr5">Update Company</button> 
         <button class="btn btn-positive mt10 mr5">Cancel</button> 
        </div>     

        {{ form_rest(form) }} 
       </form> 

      </div> <!-- Container End --> 

     </div> <!-- Wrapper End --> 

    </section> <!-- Section End --> 

{% endblock %} 
+0

우리에게 알려주십시오 : 무슨 일이 일어나고, 어떤 일이 일어나기를 원하며, 무엇을 시도했는지 알려주세요. –

답변

0

단 하나 개의 액션 기록

public function editAction($id) { 

    $em = $this->getDoctrine()->getManager();   
    $company = $em 
     ->getRepository('SwipeBundle:Company') 
     ->find($id); 

    if(!$company) { 
     throw $this->createNotFoundException(
      'No Company found for id '.$id 
     ); 
    } 

    $form = $this->createForm(CompanyType::class, $company, array(
     'action'=>$this->generateUrl('swipe_backend_company_update', array('id'=>$company->getId())), 
     'method'=>'PUT' 
    )); 

    if ($request->getMethod() == "POST") { 

     if ($form->isValid()) { 

      $em->persist($company); 
      $em->flush(); 
     } 
    } 

    return $this->render('Backend/Company/edit.html.twig', array(
     'form'=>$form->createView(), 
     'company'=>$company 
    )); 
} 

또한

이 당신에게 유용합니다 있는지 확인 나뭇 가지 동일한 편집 행동 양식 동작을 변경합니다.

+0

인쇄 : var_dump ($ form-> getErrorsAsString()); 누락 된 부분과 잘못된 필드를 확인하십시오. –

관련 문제