2014-11-16 8 views
0

Я создал форму, и я использую ее проверку, но всякий раз, когда я нажимаю на нее, не перенаправляю и показываю одну и ту же страницу. Даже я установил значения по умолчанию, а затем не помогло , , пожалуйста, помогите мне. Даже у меня есть проверка на varuious form no help.Функция isvalid() в symfony всегда дает false

registration form class 

    class registrationform extends sfForm { 
     //put your code here 
     protected static $option=array('Lab Technician','Lecturur','Assistant Professor','Professor','H.O.D'); 
     public function configure() { 

      $this->setWidgets(array(
       'first_Name'=>new sfWidgetFormInputText(array('default'=>'hello'),array('class' => 'textView'),array('default'=>'hello')), 
       'middle_Name'=>new sfWidgetFormInputText(array('default'=>'hello'),array('class' => 'textView')), 
       'last_Name'=>new sfWidgetFormInputText(array('default'=>'hello'),array('class'=>'textView')), 

       'age'=>new sfWidgetFormInputText(array('default'=>'hello'),array('class'=>'textView')), 




      )); 


     $this->setValidators(array(
      'first_Name' => new sfValidatorString(array('required' => 'The message field is required.')), 
      'middle_Name' => new sfValidatorString(array('required' => 'The message field is required.')), 
      'last_Name' => new sfValidatorString(array('required' => 'The message field is required.')), 

      'age' => new sfValidatorString(array('required' => 'The message field is required.')), 

      )); 
     $this->widgetSchema->setNameFormat('contact[%s]'); 
     } 


    ****action.class.php**** 

это класс i, в котором у меня есть код класса действия.

public function executeIndex(sfWebRequest $request) 
     { 
     // $this->forward('default', 'module'); 
     $this->registration_form = new registrationform(); 

     if ($request->isMethod('POST')) 
     { 
      $this->registration_form->disableLocalCSRFProtection(); 
      $this->registration_form->bind($request->getParameter('contact')); 


      if (!($this->registration_form->isValid())) 
      { 
       echo"\hiol"; 
      $this->redirect('registration/thankyou?'.http_build_query($this->registration_form->getValues())); 
      } 
     } 


indexsuccess 


<?php echo stylesheet_tag('form');?> 

<div class="page"> 
<div class="form" > 
    <form action="<?php echo url_for('registration/index') ?>" method="POST"> 
    <div class="row" id="head"> 
     REGISTRATION FORM 
    </div> 
    <div class="row"> 
    <div class="columnLabel"><?php echo $registration_form['first_Name']->renderLabel()?></div> 
    <div class="columnView"><?php echo $registration_form['first_Name']->render()?></div> 

    </div> 
     <div class="row"> 
      <div ><?php echo $registration_form['first_Name']->renderError()?></div> 
     </div> 
    <div class="row"> 
    <div class="columnLabel" ><?php echo $registration_form['middle_Name']->renderLabel()?></div> 
    <div class="columnView" ><?php echo $registration_form['middle_Name']->render()?></div> 
    </div> 
    <div class="row"> 
    <div class="columnLabel"><?php echo $registration_form['last_Name']->renderLabel()?></div> 
    <div class="columnView"><?php echo $registration_form['last_Name']->render()?></div> 
    </div> 


    <div class="row"> 
    <div class="columnLabel"><?php echo $registration_form['age']->renderLabel()?></div> 
    <div class="columnView"><?php echo $registration_form['age']->render()?></div> 
    </div> 
    <div class="row"> 
      <div class="columnLabel"><input class="button" type="submit" value="submit" name="submit"></div> 
     </div> 
    </form> 
     </div> 
<!--  </div> 
     </div> 
    </div> 

    </div> 
</div>--> 

ответ

1

Ваш класс действия не сохраняет форму, если она действительна. Вы должны сохранить и перенаправить, если форма является действительным:

if ($this->registration_form->isValid()) 
{ 
    $this->registration_form->save(); 
    $this->redirect('registration/thankyou'); 
} 

Если вам нужно значение формы на следующей странице, не передавать их в URL, но вместо вспышки:

$this->getUser()->setFlash('registration_form', $this->registration_form->getValues()); 

 Смежные вопросы

  • Нет связанных вопросов^_^