検索

ホームページ  >  に質問  >  本文

symfony2 での自動パーミッション制御 + メニュー + ブレッドクラムの構築に関する問題

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

リーリー

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

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

リーリー

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

PHPzPHPz2790日前664

全員に返信(1)返信します

  • 伊谢尔伦

    伊谢尔伦2017-05-16 16:46:27

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

    リーリー

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

    返事
    0
  • キャンセル返事