symfony2 での自動パーミッション制御 + メニュー + ブレッドクラムの構築に関する問題
PHPz
PHPz 2017-05-16 16:44:27
0
1
635

私は上記の要件を満たすためにTPやCIなどの他のフレームワークを使用してきましたが、簡単に実現できます。最近はSF2にも実装して共通機能を提供するバックエンドを自動作成するadminBundleを書きたいと思っています。ただし、次の問題が発生しました:
ユーザーのアクセス権限をバックグラウンドでグローバルに検出したいため、各コントローラーがトリガーされる前にコントローラーのリクエスト情報を取得し、ユーザーが対応する権限を与えているかどうかを確認します。コードは次のとおりです:

リーリー

次に、背景レイアウトに 2 つのレンダリングを導入しました。メニューとパンくずリストのコードは次のとおりです。 リーリー

このようにして、2 つの sub_request が開始されますが、私の要件は、パンくずリストとメニューを実装するために sub_request 内の親リクエストの URL を取得することです。 SFにはいくつかの問題があります。サブアクションでリクエストスタックを取得することを提案した人がいました

リーリー

上記のアクションで request_stack を取得しようとしましたが、取得すると、このアクションでリクエストが開始され、リスナーがトリガーされてから else が実行され、権限が不十分であることを示すプロンプトにジャンプしたようです。私は混乱していて、理由がわかりませんでした。

PHPz
PHPz

学习是最好的投资!

全員に返信(1)
伊谢尔伦

kernel.controllerを監視し、判断を追加し、メインリクエストが行われたときにのみ権限をチェックするリスナー:

リーリー

2.3 の FilterControllerEvent にはこのメソッドがありません。このロジックを参照して自分で記述してください:
https://github.com/symfony/symfony/blob/2.7/src/Symfony/Component/HttpKernel/Event/KernelEvent.php #L100

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート