問題タブ [zend-framework3]
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.
php - ZF3/2 - EVENT_DISPATCHリスナー内でスローされた例外をキャッチする方法は?
EVENT_DISPATCH リスナー内でスローされた例外を処理する方法はありますか?
ForbiddenException403 を設定する、JSON を返すなどの一般的な方法があります。すべてのロジックはMvcEvent::EVENT_DISPATCH_ERRORリスナーに関連付けられています。ForbiddenExceptionディスパッチエラーリスナー内のリスナーに転送するにはどうすればよいですか? ディスパッチリスナーからスローすると、キャッチされていない例外エラーが発生します...
それを乗り越えるための助けやヒントをいただければ幸いです。
php - Zend フレームワーク 3 チュートリアル
Zend Framework 3 のチュートリアルを試していますが、詳細部分で関数を「編集」することに行き詰まっています(ブログ ケース)。
ブログ メッセージを編集しようとすると、編集フォームに元のメッセージが表示されません。元のメッセージをフォームにバインドできなかったようです。
サンプルコードをすべてコピーしました。何が悪いのかわかりません。ちなみに、私の追加機能と削除機能は正常に機能します。
誰でも私を助けることができますか?
editActionチュートリアルの方法:
php - Zend3 でサービス マネージャーを使用する正しい方法
Service Manager で Zend 3 のドキュメントを読んでいたところ、この問題が発生しました。
ドキュメントでは、コントローラーに DI がある場合は、module.config.phpファイルを更新してコントローラー キーを追加しInvokableFactory::class、カスタム ファクトリ クラスではなくコントローラーを呼び出して、最初のコントローラーが使用するクラスの配列を含む別のキー service_manager を追加する必要があると記載されています。
わかりましたので、私はそれをします:
module.config.php
Controller1Factory.php
しかし、Controller2 と Controller3 のコンストラクターにも DI があるというエラーが発生したため、モデルに到達するまで、新しいカスタム ファクトリなどを作成します。
また、モデルには、zend ネイティブであるコントローラーに注入される依存関係もあり\Zend\Db\TableGateway\TableGatewayInterface、conf ファイルを再度編集して追加する必要がありますTableGatewayInterface。
そして、それは間違っています。この方法でネイティブの zend クラスとサービスを注入することを強制されるべきではありません。
それで、私は何を間違っていますか?
php - それ自体および別のモデルとの関係を持つ Zend Framework 2/3 モデル
最初に、次の 2 つのスタックオーバーフローの質問を読みましたが、実際には答えが得られませんでした。
私のアプリケーションには、多数のプロパティを持つ従業員データベース テーブルがありますが、現在最も興味深いのは、外部キーであるmanager_idとです。bank_id
manager_id別の従業員への外部キーです(従業員が1人のマネージャーを持つことができると想像できるように)bank_idbank従業員は銀行口座を持つことができるため、呼び出された別のモデル/データベーステーブルへの外部キーです;-)
私のEmployeeTable.phpファイルには、データベースの結果を取得する魔法のメソッドがあります。
従業員を 1 人獲得するには、次のようにします。
しかし、SQL 結合がなければ、返された従業員オブジェクトには manager_id と bank_id しかありません。
質問: 必要な情報を取得するためのベスト プラクティスは何ですか?
これまでのところ、次の 2 つの考えがあります。
初め
が空でない場合は$row、たとえばbankTable、メソッドを持つオブジェクトを (依存性注入を介して)呼び出す必要がありますgetBankById。次に、getter/setter を使用してEmployee.phpモデルを拡張し、メソッド内のステートメントの前に次のようにします。$bankreturngetEmployeeId
manager_idしかし、現在使用しているのと同じメソッドを呼び出すため、これを行う再帰ループが怖いです。
2番
または、左結合でメソッドを拡張してgetEmployeeById、次のように銀行テーブルからデータを取得する必要があります。
残念ながら、結合された列にエイリアス名を付ける必要があります。それ以外の場合idは、従業員から銀行 ID などで上書きします。
この種の sql ステートメントの後、結果を抽出してプロパティを値として取得し、それらをハイドレートすることがわかります。
水分補給は次のようになります。
この結果、クリーンなemployeeモデル (余分なエイリアス列なし) と、別の従業員 (マネージャー) と銀行のオブジェクトである 2 つの新しいプロパティが追加されました。
しかし、これはかなり過負荷に見えます...
ここまで読んでくれてありがとう - ヒントやアドバイスがあれば、大歓迎です!
編集
私はEmployeeTableFactory次のことを行うように編集しました(水分補給について):
私はすでに抽出物を使用していたので、 HydratorInterfaceEmployeeHydratorを実装するように変更しましたが、メソッドに必要なインターフェイスと一致するようになりました。resultSetPrototype->setHydrator()
次のコードでは、完成した従業員オブジェクトと関連するすべての外部キーオブジェクトが既にあるため、メソッドは非常に簡単になってgetEmployeeByIdいます( my によるEmployeeHydrator)
私はこの実装が好きです
php - ZF3 でモジュール構成を取得する
Zend Framework 3 のコントローラーからモジュール構成を取得したいのですが、検索したところ、ZF2 でこれを行う標準的な方法は、
の構成にアクセスしますmodule.config.php。ただし、方法がないため、これは ZF3 では機能しませんgetServiceLocator()。
これを達成する標準的な方法は何ですか?
zend-framework2 - ZF3 を使用したモジュール ブートストラップでヘルパー マネージャーにアクセスできない
を使用して、これを行うZend Framework 2ことにアクセスできます。ViewHelperManager
を使用して新しいプロジェクトを開始して以来、これはモジュールで機能しなくなったようですZend Framework 3。
ここで何をすべきかよくわかりません。
zend-framework - レンダーイベント中にphprendererに変数を割り当ててもレイアウトに渡されない
イベント中にビューレンダラーに変数を割り当てようとしていますが、render event値を生成していません。
に添付したイベントがありrender eventますApplication Module。This is a Zend Framework 3 Application中に呼び出されるメソッドもありますがrender event operation 、フレームワークが非常に新しいため、より公開するために Zend Framework 2 にタグを付けました。ここにあります
ご覧のとおり、クラスgetPhprenderer()を使用してメソッドを呼び出しています。DesignHandlerこのメソッドは のインスタンスを返します\Zend\View\Renderer\PhpRenderer。いずれにせよ、この後、変数をレンダラー オブジェクトに割り当てます。
これに続いて、in my layout - application/view/layout/layout.phtml私はこれを行います:
これにblank values入ります。
ここで間違っていることは何ですか?
現在の結果は次のとおりです。
zend-framework - ZF3 MVC Zend\Authentication as a Service Factory
ZF2Userモジュールを ZF3 MVC に適合させようとしています。ユーザーが認証されているかどうかを確認するために、すべての要求 (つまり、ページの読み込み) に対してクラスonBootsrap内の関数で呼び出される認証サービス マネージャーがあります。Module
serviceLocatorとはもう利用できないのでServiceAware、 を作成しようとしていますが、AuthenticationServiceFactoryまだ成功していません。私が間違っていることと、ZF3でどうすればそれができるかについて何か考えがありますか?
module/User/config.module.config.phpここに私のファイルの簡略版があります
ここに私のmodule/User/src/Service/AuthenticationServiceFactory.phpファイルがあります
ここに私のmodule/User/src/Module.phpファイルがあります
何か案は ?