問題タブ [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 リスナー内でスローされた例外を処理する方法はありますか?
ForbiddenException
403 を設定する、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_id
bank
従業員は銀行口座を持つことができるため、呼び出された別のモデル/データベーステーブルへの外部キーです;-)
私のEmployeeTable.php
ファイルには、データベースの結果を取得する魔法のメソッドがあります。
従業員を 1 人獲得するには、次のようにします。
しかし、SQL 結合がなければ、返された従業員オブジェクトには manager_id と bank_id しかありません。
質問: 必要な情報を取得するためのベスト プラクティスは何ですか?
これまでのところ、次の 2 つの考えがあります。
初め
が空でない場合は$row
、たとえばbankTable
、メソッドを持つオブジェクトを (依存性注入を介して)呼び出す必要がありますgetBankById
。次に、getter/setter を使用してEmployee.php
モデルを拡張し、メソッド内のステートメントの前に次のようにします。$bank
return
getEmployeeId
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
ファイルがあります
何か案は ?