2

listData がデータベース モデルから生成される 3 つのカスケード dropDownLists を作成しました。リストは、コントローラー ベースのアクションへの Ajax 呼び出しで生成されます。

このコードを再利用して、より多くのページで共有したいと考えています。

私は次のことをしようとしました:

  1. カスタム ウィジェットとして記述します。現在、一致するコントローラーで関数を呼び出す「createurl」関数を使用しています。既存の db モデルを使用したいので、JavaScript を書くことができません。この場合、アクション関数を独立したファイルに記述する必要があります。コントローラーを記述する必要がありますか? どこに置けばいいですか?

  2. モジュールの一部として書きますが、やり過ぎのようです。

何か提案があれば、それを行うための正しくて簡単な方法があると確信しています。

4

1 に答える 1

0

ヘルパーとして作成できます。ヘルパーは、M->C->V アクション フローで直接的なアクションを持たないコンポーネントの単なるクラスですが、任意のコントローラー、モデル、ビュー、コンポーネント、モジュールなどで使用できます...私はヘルパーを書きますコントローラーから呼び出すメソッド。

もう 1 つの提案は、CController を独自のベース コントローラーに拡張し、実際のコントローラーをカスタム ベース コントローラーから拡張することです。そうすれば、すべてのコントローラーで簡単に使用できるようになり、実際のコントローラーで設定した使用するモデルを含むいくつかのメンバーを設定するだけです。

これについてさらにヘルプが必要な場合は、freenode #yii で私を見つけてください

于 2012-12-21T09:04:41.930 に答える