私はZend Frameworkでしばらく働いており、現在私のコードの一部をリファクタリングしています。私が大切にしたいのは、私のabstract
コントローラークラスです。このクラスでは、すべてのコントローラーに存在する必要がある多くの変数($success
、$warning
、$error
など)を開始します。この部分はコントローラプラグインで実行できますが、これらの変数を関連ビューに送信する最も良い方法は何でしょうか。私は私のすべてのコントローラ内から呼び出す私のabstract
コントローラクラスでカスタムメソッドを使用しています。その後、私はこのZendFrameworkコントローラからビューに変数を送信する(ベスト・プラクティス)
答えて
あなたに適したプラグインコントローラまたは何かを通じて、このプロセスを自動化するために探していたthrought
parent::sendViewData();
私のコントローラのすべてのすべてのアクションで呼び出され
protected function sendViewData(){
$this->view->success = $this->success;
$this->view->warning = $this->warning;
$this->view->error = $this->error;
}
抽象コントローラでpostDisplatchメソッドを設定して、ビューデータを初期化することができます(「プレディスパッチフックとポストディスパッチフック」を参照)。
このようにして、各アクションで$this->success
,$this->warnning
または$this->error
という変数を初期化できます。アクションが実行された後でビューに渡されます。
しかし、postDispatchメソッドをオーバーライドする場合は、具体的なコントローラでparent :: postDispatch()を呼び出さなければならないことに注意してください。 –
これまで私はpostDispatchメソッドを認識していなかったので、問題はありませんが、指摘してくれてありがとうございます。D –
pacticeは、直接この
// IndexController.php
class IndexController extends ApplicationController {
}
ようになる
Zend_Controller_Action
方法に
// Your base controller file ApplicationController.php
class ApplicationController extends Zend_Controller_Action {
// method & variable here are available in all controllers
public function preDispatch() {
$this->view->success = $this->success;
$this->view->warning = $this->warning;
$this->view->error = $this->error;
}
}
あなたの他の正常なコントローラを呼び出すのではなく、ベースコントローラを定義し、他のコントローラはこれを拡張してみましょうですベスト
この変数(成功、警告&エラー)は、すべてのビュー/レイアウトファイルで使用可能です。ApplicationController.php
他のコントローラの共有機能を保持することもできます。
- 1. コントローラからビューに変数を送信
- 2. マテリアライズド・ビュー - ベスト・プラクティス
- 3. ビューにコントローラ変数を送信する関数
- 4. ベスト・ソケット・ネーミング・プラクティス
- 5. ビューからコントローラへのタッチイベントの送信
- 6. アングル・サブスクリプション/サブスクリプション・ベスト・プラクティス
- 7. ビューからコントローラにリストを送信する際の問題MVC
- 8. コントローラからビューにパラメータを送信する
- 9. コントローラからビューにハッシュ値を送信する
- 10. コントローラからビューに変数を渡す
- 11. Websphere x JSR 286のベスト・プラクティス
- 12. ベスト・プラクティスは、SqlDataAdapterオブジェクトは
- 13. ベスト・プラクティスのPythonのクラス
- 14. 正規表現のベスト・プラクティス
- 15. djangoビューからangularjsコントローラにデータを送信
- 16. ビューの動的テキストボックスからAngularJSコントローラにデータを送信
- 17. レールでビューからコントローラにデータを送信
- 18. オプションIDのビューからコントローラにIDを送信
- 19. ビューからコントローラから送信されたエコーデータ
- 20. laravelのコントローラからモデル関数に変数を送信する方法
- 21. MVCのビューからコントローラに複数のチェックボックス(ほぼ20k +)の値を送信
- 22. ビューからコントローラにデータを転送し、
- 23. ビューの変更+ビューへの変数のプログラムによる送信
- 24. コントローラからcakephp3の別のビューに変数値を送る方法は?
- 25. ビューからコントローラへデータを送信できません。.NET MVC
- 26. あるコントローラから別のコントローラにデータを送信する
- 27. HttpUtility.HtmlEncodeを使用してビューからコントローラにモデルを送信する方法
- 28. javascript ajaxは、djangoがビューから送信する変数を変更します。
- 29. Laravel 5.2でビューに、コントローラからのエラー検証メッセージを送信する方法
- 30. 選択したチェックボックスのリストをビューからコントローラに送信する方法
お願いします。あなたはプラグインコントローラの作成を手伝ってほしいですか? –