찾다

 >  Q&A  >  본문

Symfony2에서 자동화된 권한 제어 + 메뉴 + 탐색경로 구축 관련 문제

위 요구 사항을 충족하기 위해 TP, CI 등 다른 프레임워크를 사용해 왔는데 쉽게 구현할 수 있습니다. 최근에는 SF2에도 구현하고 adminBundle을 작성해 백엔드를 자동으로 생성해 공통 기능을 제공하고 싶다. 그러나 다음과 같은 문제가 발생했습니다.
백그라운드에서 전역적으로 사용자 액세스 권한을 감지하고 싶기 때문에 각 컨트롤러가 트리거되기 전에 요청 정보를 얻고 사용자가 해당 권한을 부여했는지 확인했습니다. 코드는 다음과 같습니다:

으아악

그런 다음 배경 레이아웃에 2개의 렌더링을 도입했습니다. 메뉴와 탐색경로 코드는 다음과 같습니다.

으아악

이런 식으로 2개의 sub_request가 시작되지만 내 요구사항은 탐색경로와 메뉴를 구현하기 위해 sub_request에서 상위 요청의 URL을 얻는 것입니다. SF에 몇 가지 문제가 있습니다. 누군가 하위 작업에서 요청 스택을 사용하도록 제안했습니다

으아악

위 작업에서 request_stack을 가져오려고 했지만 일단 가져오면 이 작업에서 요청이 시작된 것으로 보이며 내 리스너가 트리거된 다음 다른 작업이 실행되어 권한이 부족하다는 메시지로 이동합니다. 나는 혼란스러웠고 이유를 몰랐다.

PHPzPHPz2757일 전644

모든 응답(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
  • 취소회신하다