У меня есть две модели message и messageto, и я использую атрибуты моделей сообщений на странице формы messageto, как проверить эти атрибуты.

У меня есть две модели message и messageto, и я использую атрибуты моделей сообщений на странице формы messageto, как проверять эти атрибуты с помощью проверки ajax, я новичок в YII.

Я использую application.extensions.tokeninput.TokenInput для отображения полей и не могу проверить поля в этих виджетах. Спасибо, ждем вашего ответа.


person AravindRaj    schedule 17.08.2012    source источник


Ответы (1)


Хорошее понимание 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
comment
Спасибо, Нимир, проверю. - person AravindRaj; 17.08.2012