2010-03-16 8 views
2

사용자 지정 라우팅 클래스에서 사용자 개체에 액세스하는 방법이 있습니까?사용자 지정 라우팅 클래스에서 사용자 세션에 액세스

URL을 생성 할 때 매개 변수를 추가하고 싶습니다. 매개 변수는 사용자 세션 내에 있으므로 액세스해야합니다.

액세스하는 유일한 방법은 sfContext :: getInstance() -> getUser()를 사용하는 것이지만 비효율적 인 것으로 알려져 있습니다.

감사합니다.

답변

0

나는 비슷한 방식으로 그 방법을 사용했지만 문제가 현명하지 않으며 당신이 똑같을 것이라고 생각합니다.

또한 비효율적이라고 언급 한 적이 한 번도 들리지 않지만 경로가 상황에 연결되기 때문에 약간 눈살을 찌푸리게됩니다. 이를 극복 할 수있는 대안은 다른 매개 변수 (또는 전체가 필요한 경우 사용자 객체)처럼 변수를 경로에 전달하는 것입니다. 이 작업을 많이해야하는 경우 기존 url_for 메서드를 래핑하는 사용자 지정 url 도우미를 만들어이 매개 변수를 전달 된 다른 모든 세부 정보에 추가 할 수 있습니다.

+1

글쎄, 나는 성능이 아니라 "나쁜 코드"라는 방식으로 "비효율적 인"의미였습니다. 설명은 다음과 같습니다. http://webmozarts.com/2009/07/01/why-sfcontextgetinstance-is-bad/ –

0

해결 방법 나는 (지금 당장) 구현했는데 어딘가에서 데이터를 얻고있다. (이상적이지는 않지만 아직 사용자 세션에 액세스하고있다.) generate 메소드에서 $ params에 새 매개 변수를 설정한다. 커스텀 라우팅 클래스.

도움이 되길 바랍니다 ...

관련 문제