Хорошее понимание How-Yii-Ajax-Validation-Works поможет вам много использовать эту функцию и сделать некоторые настройки для нее.
Боюсь, я не использовал расширение tokeninput, но что касается проверки ajax ваших двух моделей, следующий общий план должен работать:
в своем представлении убедитесь, что у вас есть:
$form = $this->beginWidget('CActiveForm', array(
'id'=>'some-id-for-your-form',
'enableAjaxValidation'=>true //turn on ajax validation on the client side
));
Кроме того, в View любое поле с правилом проверки должно иметь:
<?php echo $form->textField($model, 'some_attribute'); ?>
<?php echo $form->error($model, 'some_attribute'); ?> // This is used to present validations error
и в вашем Контроллере в действии создания или обновления перед загрузкой входных данных Просмотр через POST
поместите следующие строки:
$messageModel = new Message;
$messageToModel = New MessageTo;
if(Yii::app()->getRequest()->getIsAjaxRequest())
{
echo CActiveForm::validate( array( $messageModel,$messageToModel));
Yii::app()->end();
}
/*
The rest of your code goes here
*/
Что касается расширения, которое вы используете, если оно автоматически генерирует код просмотра, вам нужно знать, как настроить его, чтобы поместить необходимые части enableAjaxValidation => true
и $form->error($model,'some_attribute')
.
Надеюсь, это помогло!!
person
Nimir
schedule
17.08.2012