ホームページ  >  記事  >  バックエンド開発  >  Yii Framework 公式ガイド シリーズ 19 - フォームの使用: フォームの作成

Yii Framework 公式ガイド シリーズ 19 - フォームの使用: フォームの作成

黄舟
黄舟オリジナル
2017-02-13 09:13:301077ブラウズ



ログイン ビューの作成は非常に簡単です。フォーム タグから始めます。そのアクション属性は、前に説明したログイン アクションの 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,&#39;username&#39;); ?>
        <?php  echo CHtml::activeTextField($model,&#39;username&#39;) ?>
    </p>

    <p>
        <?php  echo CHtml::activeLabel($model,&#39;password&#39;); ?>
        <?php  echo CHtml::activePasswordField($model,&#39;password&#39;) ?>
    </p>

    <p>
        <?php  echo CHtml::activeCheckBox($model,&#39;rememberMe&#39;); ?>
        <?php  echo CHtml::activeLabel($model,&#39;rememberMe&#39;); ?>
    </p>

    <p>
        <?php  echo CHtml::submitButton(&#39;Login&#39;); ?>
    </p>

<?php  echo CHtml::endForm(); ?>
<!-- form -->

上記のコードは、より動的なフォームを生成します。たとえば、CHtml::activeLabel() は、指定されたモデルの特性に関連するラベルを生成します。 この属性にタイプミスがある場合、ラベルの CSS クラスは error になり、CSS スタイルを通じてラベルの外観が変更されます。 同様に、CHtml::activeTextField() は、指定されたモデルのプロパティのテキスト入力フィールドを生成し、エラーが発生したときにその CSS クラスを変更します。

yiic scripter が提供する CSS スタイル ファイルを使用すると、生成されるフォームは次のようになります:

Yii Framework 公式ガイド シリーズ 19 - フォームの使用: フォームの作成Yii Framework 公式ガイド シリーズ 19 - フォームの使用: フォームの作成

バージョン 1.1.1 からは、フォームの作成を簡略化するために新しいウィジェット CActiveForm が提供されます。 この小さなウィジェットは、クライアント側とサーバー側の両方でシームレスで一貫した検証を提供します。 CActiveForm を使用すると、上記のコードは次のように書き換えることができます:

<p class="form">
<?php $form=$this->beginWidget(&#39;CActiveForm&#39;); ?>

    <?php echo $form->errorSummary($model); ?>

    <p class="row">
        <?php echo $form->label($model,&#39;username&#39;); ?>
        <?php echo $form->textField($model,&#39;username&#39;) ?>
    </p>

    <p class="row">
        <?php echo $form->label($model,&#39;password&#39;); ?>
        <?php echo $form->passwordField($model,&#39;password&#39;) ?>
    </p>

    <p class="row rememberMe">
        <?php echo $form->checkBox($model,&#39;rememberMe&#39;); ?>
        <?php echo $form->label($model,&#39;rememberMe&#39;); ?>
    </p>

    <p class="row submit">
        <?php echo CHtml::submitButton(&#39;Login&#39;); ?>
    </p>

<?php $this->endWidget(); ?>
</p><!-- form -->


上記は、Yii Framework 公式ガイド シリーズ 19 - フォームの使用: フォーム コンテンツの作成です。関連コンテンツの詳細については、PHP 中国語 Web サイト (www) を参照してください。 .php.cn )!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。