これらは Yii の 3 つの概念であり、どのシナリオで何を使用すればよいかわかりません。
これらの Yii 要素を明確にしてくれる親切な人はいますか? また、どのような状況でそれらを使用する必要がありますか?
これらは Yii の 3 つの概念であり、どのシナリオで何を使用すればよいかわかりません。
これらの Yii 要素を明確にしてくれる親切な人はいますか? また、どのような状況でそれらを使用する必要がありますか?
ActiveForm、CForm などの実例については、こちらをご覧ください。ライブのモデル、ビュー、およびコントローラー ファイルも表示できます。
CFormのドキュメントでは、次のように読むことができます。
...フォームを 2 つの部分に分割できます。個々のフォーム入力を指定する部分と、フォーム入力を装飾する部分です。CForm オブジェクトは前者を表します...
...そしてCActiveForm
後者を表します。
つまり、CForm
フォームの要素を指定しますが、CActiveForm
(ウィジェットであるため) はそれをレンダリングします。
ソース コードを見ると、render()CForm
自体も可能であり、そのレンダリングが依存し、その構成プロパティactiveFormを導入することによってウィジェットによってラップされますが、入力要素とボタンのレンダリングは独自のメソッドrenderElements()およびrenderButtons()によって実装されます。比較的。デフォルトでは、それらの実装はCHtmlの静的メソッドを使用するクラスに依存しており、レンダリング メソッドが行うものとまったく同じ (またはほとんど同じ) ものです。もちろん、デフォルトの動作はクラスを拡張することでオーバーライドできます。CActiveForm
CActiveForm
そのため、どのテクニックを使用するかは好みの問題です:CActiveForm
ウィジェットだけで、フォーム フィールドとボタンの宣言をビュー ファイルでの表現と組み合わせるCActiveForm
インスタンスまたはCForm
クラスの便利な (必須の) メソッドを呼び出して、別の構成ファイルでフォームの入力仕様を宣言する適切なアクティブ フォーム ウィジェットをポイントしたり、デフォルトのレンダリング メソッドをオーバーライドしたりして、そのレンダリングをカスタマイズします。後者の手法を使用すると、複数のアクションでフォームを簡単に再利用でき、フォーム ビルダーを使用するだけです。