4

これらは Yii の 3 つの概念であり、どのシナリオで何を使用すればよいかわかりません。

これらの Yii 要素を明確にしてくれる親切な人はいますか? また、どのような状況でそれらを使用する必要がありますか?

4

2 に答える 2

1

ActiveForm、CForm などの実例については、こちらをご覧ください。ライブのモデル、ビュー、およびコントローラー ファイルも表示できます。

于 2013-04-13T07:55:11.617 に答える
1

CFormのドキュメントでは、次のように読むことができます。

...フォームを 2 つの部分に分割できます。個々のフォーム入力を指定する部分と、フォーム入力を装飾する部分です。CForm オブジェクトは前者を表します...

...そしてCActiveForm後者を表します。

つまり、CFormフォームの要素を指定しますが、CActiveForm(ウィジェットであるため) はそれをレンダリングします。

ソース コードを見ると、render()CForm自体も可能であり、そのレンダリングが依存し、その構成プロパティactiveFormを導入することによってウィジェットによってラップされますが、入力要素とボタンのレンダリングは独自のメソッドrenderElements()およびrenderButtons()によって実装されます。比較的。デフォルトでは、それらの実装はCHtmlの静的メソッドを使用するクラスに依存しており、レンダリング メソッドが行うものとまったく同じ (またはほとんど同じ) ものです。もちろん、デフォルトの動作はクラスを拡張することでオーバーライドできます。CActiveFormCActiveForm

そのため、どのテクニックを使用するかは好みの問題です:CActiveFormウィジェットだけで、フォーム フィールドとボタンの宣言をビュー ファイルでの表現と組み合わせるCActiveFormインスタンスまたはCFormクラスの便利な (必須の) メソッドを呼び出して、別の構成ファイルでフォームの入力仕様を宣言する適切なアクティブ フォーム ウィジェットをポイントしたり、デフォルトのレンダリング メソッドをオーバーライドしたりして、そのレンダリングをカスタマイズします。後者の手法を使用すると、複数のアクションでフォームを簡単に再利用でき、フォーム ビルダーを使用するだけです。

于 2013-04-13T00:14:32.000 に答える