0

message と messageto の 2 つのモデルがあり、messageto フォーム ページでメッセージ モデルの属性を使用しています。これらの属性を ajax 検証を使用して検証する方法は、YII が初めてです。

フィールドを表示するために application.extensions.tokeninput.TokenInput を使用していますが、これらのウィジェットのフィールドを検証できません。回答をお待ちいただきありがとうございます。

4

1 に答える 1

1

How-Yii-Ajax-Validation-Worksをよく理解すると、この機能を使用したり、カスタマイズしたりするのに大いに役立ちます。

私はtokeninput 拡張機能を使用していないことを残念に思いますが、2 つのモデルの ajax 検証に関しては、次の一般的な計画が機能するはずです。

あなたのViewで、あなたが持っていることを確認してください:

 $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

Controllerの create または update アクションで、 View入力をロードする前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使用している拡張機能については、View コードを自動生成する場合、必要な&$form->error($model,'some_attribute')パーツを配置するように構成する方法を知る必要があります。

これが役に立ったことを願っています!!

于 2012-08-17T12:16:25.283 に答える