Yii アプリケーションで MVC で作られたビューを作成する場合、HTML 言語を直接使用してページビューを直接構築することもできます。また、Yii にはビューの作成を簡素化するためのいくつかのヘルパークラスも用意されています。たとえば、テキスト入力フィールドを作成するには、CHtml::textField(); を呼び出してドロップダウン リストを作成し、CHtml::dropDownList() を呼び出します。前の Hangman の例のいくつかのビューでは、CHtml を使用してビューを作成しました。
情報: プレーン HTML を直接記述するのと同じ量のコードが必要な場合、ヘルプ クラスを使用する利点について疑問に思われるかもしれません。 その答えは、ヘルパー クラスが HTML コードよりも多くの機能を提供できるからです。たとえば、次のコードは、ユーザーが値を変更したときにフォーム送信アクションをトリガーするテキスト入力フィールドを生成します。
CHtml::textField ($name,$value,array('submit'=>''));
それ以外の場合は、大量の JavaScript を記述する必要があります。
Hangman でのページ再生の定義を思い出してください:
<p>This is the game of Hangman. You must guess a word, a letter at a time. If you make too many mistakes, you lose the game!</p> <?php echo CHtml::beginForm(); ?> <?php echo CHtml::radioButtonList('level', null, $levels); ?> <br/> <?php echo CHtml::submitButton('Play!'); ?> <?php if($error): ?> <span style="color:red">You must choose a difficulty level!</span> <?php endif; ?> <?php echo CHtml::endForm(); ?>
CHtml を使用してページを構築する場合は、常に CHtml::beginForm() で始まり CHtml::endForm() で終わります。実際、これら 2 つのメソッドは From タグの開始タグと終了タグを生成します。
ボタン、radioButton、checkbutton、その他の UI コンポーネントなど、HTML フォームでサポートされている UI コンポーネントの場合、CHtml クラスは、上記の radioButtonList や submitButton などの対応するメソッドを提供します。
radioButtonList などに加えて、CHtml は activeRadioButtonList などの activeXXX のセットも提供します。これらのメソッドは、Hangman のような例では別の Model を使用しないため、activeRadioButtonList メソッドと組み合わせて使用する必要があります。 MVC は後で Model で導入されます。
CHtml でサポートされているすべての UI コンポーネントについては、Yii クラスのリファレンス ドキュメントを参照してください: http://www.yiiframework.com/doc/api/1.1/CHtml
バージョン 1.1.1 からは、新しい小さなオブジェクト CActiveForm . (http://www.yiiframework.com/doc/api/1.1/CActiveForm) を使用してフォームの作成を簡素化します。 この小さなウィジェットは、クライアント側とサーバー側の両方でシームレスで一貫した検証を提供します。これらは、Yii がサポートする UI コンポーネントにまとめて導入されています。
上記は、PHP 開発フレームワーク Yii Framework チュートリアル (7) CHtml を使用してフォームを作成する内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。