2015-04-02 6 views
0

У меня возникли трудности с пониманием валидации CActiveForm, как она работает? Это моя форма:Yii CActiveForm Валидация вопроса

$form = $this->beginWidget('CActiveForm', array(
    'id' => 'swim-subscribe-form', 
    'enableAjaxValidation' => true, 
    'action'=>"/mycontroller/myfunction" 
     )); 

echo $form->labelEx($model, 'companion_tel', array('label' => 'telefon:')); 
$this->endWidget(); 

и в MyFunction у меня есть:

if (isset($_POST)) 
$model->attributes = $_POST; 
    if ($model->save()) { 
     $this->redirect('/another_controller'); 
    } 
} 

и в модели у меня есть:

class myModel extends ActiveRecord { 
    public $companion_tel; 
    public function rules() { 
    return array(
      array('companion_tel' , 'required', 'message'=>'Invalid !'), 
); 
} 
} 

На самом деле я хочу, чтобы показать сообщение Invalid после представить , Как я могу это сделать ?

ответ

2

простым способом

if (isset($_POST['YourForm'])) { 
      $model->attributes = $_POST['YourForm']; 

      if ($model->validate()) { 
       if ($model->save()) { 
        $this->redirect('/another_controller'); 
       } 

     } 
} 

$this->render('YourViewName', array('model' => $model)); 

и вид изнутри добавить ошибку

$form = $this->beginWidget('CActiveForm', array(
    'id' => 'swim-subscribe-form', 
    'enableAjaxValidation' => true, 
    'action'=>"/mycontroller/myfunction" 
     )); 
echo $form->error($model,'companion_tel'); //error 
echo $form->labelEx($model, 'companion_tel', array('label' => 'telefon:')); 
$this->endWidget(); 
+0

Если я пишу, если ($ модели-> Validate()) {....} еще {эхо «не удалось «}. Он отображает меня всегда сообщение не удалось. Это не делает вид. –

+0

Добавить $ this-> render ('viewName', array ('model' => $ model)) ;, Я могу отредактировать, возможно, ответит –

+0

Да, это работает. но у меня возникла еще одна проблема: перед тем, как перейти в мою форму, были выполнены несколько событий ajax. Он загружает мой взгляд. Я получил сообщение проверки, но я потерял css, меню и другие вещи. любая идея, что мне делать? –

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