問題タブ [zend-framework-mvc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
zend-framework2 - ZF2-ForwardプラグインはViewModelオブジェクトを返します。単純配列や連想配列など、他の値を返すようにするにはどうすればよいですか?
一方のコントローラーのアクションメソッドから呼び出しthe Forward plugin
て、もう一方のコントローラーのアクションメソッドから値を取得します。
そして、Boo
これが私が適用するコントローラーです:
そして私がprint_r($result)
それがページのViewModelである場合error/404
:
何が起こっている?この動作を変更して、必要なデータ型を取得するにはどうすればよいthe Forward plugin
ですか?
UPD 1
今のところここでこれだけが見つかりました:
MVCは、これを自動化するために、コントローラーのリスナーをいくつか登録します。1つ目は、コントローラーから連想配列を返したかどうかを確認します。その場合、ビューモデルを作成し、この連想配列を変数コンテナにします。このビューモデルは、MvcEventの結果を置き換えます。
そして、これは機能しません:
つまり、配列だけを取得する代わりに、変数をに入れてViewModel
、を返し、ViewModel
それらの変数をから取得する必要がありますViewModel
。とても良いデザインだと言えます。
php - Zend MVC:コントローラーからモデルへの1回の呼び出し、または異なる結果に対する複数の呼び出し?
モデルからのさまざまな結果が必要ですが、それが正しいかどうかわかりませんテーブルから1行をフェッチし、他の行とは異なる行をフェッチする必要があります。
最初の例 (より多くの呼び出し、収集して送信して表示):
コントローラ
モデル
2 番目の例 (1 回の呼び出し、モデルがすべてのデータを収集し、コントローラーに戻り、ビューに送信する):
コントローラ
モデル
ありがとう
zend-framework2 - ZF2: アプリケーション全体で basePath を同じに設定するにはどうすればよいですか?
マニュアルの例は、特定の特定の場合にのみ basePath を設定する方法を示していますviewModel
。
しかし、私はそれを一箇所のどこかに設定したいのですが、それはviewModel
どのコントローラーで作成したものでも同じです。どうすればいいですか?
zend-framework2 - ZF2: Module クラスのイベントにリスナーをアタッチする方法は?
basePath
特定のリクエストに対して、Mvc のすべてのコンポーネントでa を同じに設定したいと考えています。つまり、これらのメソッドを呼び出すときに同じ結果を得たいということです'/spam/ham/'
。
basePath
私がすでに見つけた最初のケースの設定方法、これが私の質問です。ちなみに、元のマニュアルには、回答から得た情報はありません。
そして今、2番目のもの -basePath
に設定する必要がありますRequest
:
ここで、実際にはhttp://zend-framework-community.634137.n4.nabble.com/Setting-the-base-url-in-ZF2-MVC-td3946284.htmlでまったく機能しないいくつかの答えを見つけました。ここ で述べたStaticEventManager
ように非推奨なので、次のように変更しましたSharedEventManager
:
そして、私modules/Application/configs/module.config.php
は追加します:
しかし、それはうまくいきません。問題は次のとおりです。
1) ランが関数に来ることはありませんregisterBasePath
。しかし、そうしなければなりません。init
関数内のリスナーにイベントを添付しました。
2)私が変更SharedEventManager
するとEventManager
、たまたまregisterBasePath
関数に到達しますが、例外がスローされます:
私は何を間違っていますか?registerBasePath
プログラムの実行が関数に来ないのはなぜですか? これがbasePath
グローバルに設定する唯一の方法である場合、それを正しく行う方法は?
zend-framework2 - zf2のloadModules.postは関数ですか?
zf2でコードをトレースすると、アプリケーションサービスが登録されている場所が見つかりません。これがapplication.phpのコードです
コード「$serviceManager->get('Application')」は、アプリケーションサービスを取得するためのものです。しかし、アプリケーションサービスはどこに登録されましたか?
次に、アプリケーションサービスがZF2 / library / Zend/MoudleManagerのコード行「$this->getEventManager()-> trigger(ModuleEvent :: EVENT_LOAD_MODULES_POST、$ this、$ this-> getEvent())」に関連していることがわかりました。 /MoudleManager.php
もう1つの質問は、「ModuleEvent :: EVENT_LOAD_MODULES_POST、つまりloadModules.postです。トリガー関数の最初のパラメーターは関数名です。loadModules.postも関数ですか?どこで定義されましたか?
前もって感謝します。
php - サードパーティのアプリケーションをZendFramework2 MVC(Apache)に追加するにはどうすればよいですか?
さて、私はZend 2 Frameworkを使用しており、基本的なZendMVCスタイルに従いました。しかし、site.com / blog(およびブログはサードパーティのアプリケーション)を追加したいとします。では、どうすればこれを追加できますか?/ blogを無視するようにフレームワークに指示するにはどうすればよいですか?これは.htaccessの変更だけでしょうか?(私はApacheを使用しています)
ありがとう!
php - モジュール間で共有されるZF2モデル
ZF2スケルトンに基づいて、新しいプロジェクト用に新しいZF2アプリケーションのセットアップを開始したばかりで、モデルに関するチュートリアルを見ています。
tl; dr:モデルをより高いレベル(/ moduleの外側)のどこかに配置して、複数の異なるモジュール間でモデルを共有するにはどうすればよいですか?
次のようにいくつかのモジュールを設定します。
フォルダを設定しようと/module/ModuleName/src/ModuleName/Model/TableName.php
していましたが、他のモジュールでもそのテーブルにアクセスする必要があることに気付きました。だから私は何をすべきですか?
Modelsフォルダーを配置する必要がありますか、/module/Model
それともモジュールとして扱われることになります。つまり、site.com / model(現在の構成に基づく)。
モデルをコピーして場所間で貼り付ける必要がありますか?/vendor/library/Company/Model
モデルをどこかに貼り付ける必要がありますか?このためのベストプラクティスがあるかどうかはよくわかりません。
質問2:チュートリアルでは、ServiceManagerを使用して、同じインスタンスを使用するようにデータベースモデルをインスタンス化することも提案しています。5つのコントローラーを備えたモジュールがあり、各コントローラーが完全に別々のテーブル(たとえば、それぞれ4つのテーブル)にアクセスしている場合はどうなりますか?(そのモジュール内の他のコントローラーの場合)ページの読み込みごとに16個のテーブルを冗長的に初期化するように思われます。単一のテーブルの初期化により、ページロードに55ミリ秒が追加されます。これを回避する方法はありますか?チュートリアルがテーブルゲートウェイを初期化するために行うことに基づいて、構成をコントローラーのアクションに移動する方法がわかりませんか?
zend-framework2 - Zend Framework 2ViewManager-ファイルと要求されたアクションの一致を表示します
自動一致ビューファイルを作成したい-コントローラーアクション。
/Web/TestController/testAction
(モジュール/コントローラー/アクション)が要求された場合、
ZF2はこのビューを読み込もうとします:/web/test/test
次に、この行をに追加して、機能template_map
させる必要があります。
ただし、すべてのアクションにこの行を追加したくありません。
このように動作しますか:
自動的に一致するようにするにはどうすればよいですか?
module.config.php:
php - Zend 2 を作成して、同じモジュール内のテンプレートのみを検索します
私は(単純化された)2つのモジュールを持っていApplication
ますAdmin
. Admin
私はしばらくの間このモジュールに取り組んでおり、Application
. 両方のモジュールには、 という名前のコントローラーがありUsersController
ます。
の作成を開始し、Application
いくつかのルートとアクションを作成したときに、Admin
モジュールが壊れました。どこでも管理ページを開こうとしたときに発生したエラーは、次のようなものでした
docsによると、テンプレート パスの最初の部分は、呼び出し元のコントローラーの名前空間から取得されます。しかし、ディレクトリを作成して以来、名前空間に関係なく、そこからmodule/Application/view/application/users/
すべてのテンプレートを取得しようとします。Admin\Controller\UsersController
毎回アクションでテンプレート ファイルを強制することなく、Zend に名前空間を再度使用させるにはどうすればよいですか?
(Zend 2.1.3 を使用)
zend-framework - Zend アクション ビュー ヘルパーと ActionStack アクション ヘルパー
ZF ActionStack アクション ヘルパーは、ディスパッチ プロセス全体を再トリガーするため、パフォーマンス ヒットが発生することを理解しています。しかし、アクション ビュー ヘルパーはどうでしょうか。同じ理由で避けるべきでしょうか?