ログイン ビューの作成は非常に簡単です。フォーム タグから始めます。そのアクション属性は、前に説明したログイン アクションの URL である必要があります。 次に、LoginForm クラスで宣言されたプロパティのラベルとフォーム フィールドを挿入する必要があります。最後に、ユーザーがクリックしてフォームを送信できる送信ボタンを挿入します。これらはすべて純粋な HTML コードで実行できます。
Yii は、ビューの作成を簡素化するためのいくつかのヘルパー クラスを提供します。たとえば、テキスト入力フィールドを作成するには、CHtml::textField(); を呼び出してドロップダウン リストを作成し、CHtml::dropDownList() を呼び出します。
情報: 単純な HTML を直接記述するのと同じ量のコードが必要なヘルパーを使用する利点について疑問に思うかもしれません。 答えは、ヘルパーは HTML コードよりも多くの機能を提供できるからです。たとえば、次のコードは、ユーザーが値を変更したときにフォーム送信アクションをトリガーするテキスト入力フィールドを生成します。
CHtml::textField($name,$value,array('submit'=>''));
それ以外の場合は、大量の JavaScript を記述する必要があります。
以下では、CHtmlを使用してログインフォームを作成します。変数 $model が LoginForm のインスタンスであると仮定します。
<p> <?php echo CHtml::beginForm(); ?> <?php echo CHtml::errorSummary($model); ?> </p><p> <?php echo CHtml::activeLabel($model,'username'); ?> <?php echo CHtml::activeTextField($model,'username') ?> </p> <p> <?php echo CHtml::activeLabel($model,'password'); ?> <?php echo CHtml::activePasswordField($model,'password') ?> </p> <p> <?php echo CHtml::activeCheckBox($model,'rememberMe'); ?> <?php echo CHtml::activeLabel($model,'rememberMe'); ?> </p> <p> <?php echo CHtml::submitButton('Login'); ?> </p> <?php echo CHtml::endForm(); ?> <!-- form -->
上記のコードは、より動的なフォームを生成します。たとえば、CHtml::activeLabel() は、指定されたモデルの特性に関連するラベルを生成します。 この属性にタイプミスがある場合、ラベルの CSS クラスは error になり、CSS スタイルを通じてラベルの外観が変更されます。 同様に、CHtml::activeTextField() は、指定されたモデルのプロパティのテキスト入力フィールドを生成し、エラーが発生したときにその CSS クラスを変更します。
yiic scripter が提供する CSS スタイル ファイルを使用すると、生成されるフォームは次のようになります:
バージョン 1.1.1 からは、フォームの作成を簡略化するために新しいウィジェット CActiveForm が提供されます。 この小さなウィジェットは、クライアント側とサーバー側の両方でシームレスで一貫した検証を提供します。 CActiveForm を使用すると、上記のコードは次のように書き換えることができます:
<p class="form"> <?php $form=$this->beginWidget('CActiveForm'); ?> <?php echo $form->errorSummary($model); ?> <p class="row"> <?php echo $form->label($model,'username'); ?> <?php echo $form->textField($model,'username') ?> </p> <p class="row"> <?php echo $form->label($model,'password'); ?> <?php echo $form->passwordField($model,'password') ?> </p> <p class="row rememberMe"> <?php echo $form->checkBox($model,'rememberMe'); ?> <?php echo $form->label($model,'rememberMe'); ?> </p> <p class="row submit"> <?php echo CHtml::submitButton('Login'); ?> </p> <?php $this->endWidget(); ?> </p><!-- form -->
上記は、Yii Framework 公式ガイド シリーズ 19 - フォームの使用: フォーム コンテンツの作成です。関連コンテンツの詳細については、PHP 中国語 Web サイト (www) を参照してください。 .php.cn )!