2012-10-19 3 views
0

Acl에서 허용하는 항목 만 표시하도록 탐색을 원하지만 Acl과 내비게이션을 연결하는 데 문제가 있습니다 - 인터넷에서 official example 또는 some other resources으로 표시되는 것과 같이 탐색 할 때 여전히 모든 항목이 표시됩니다. 아이템은 Acl없이 좋아. 부트 스트랩에서 Zend_Acl을 Zend_Navigation과 연결하기

, 내가 뭐하는 거지 :

$view->navigation()->setContainer($container); 
$view->navigation()->setAcl($acl)->setRole("1"); 

장소 :

  • $ 뷰는 Zend_View 객체에게 있습니다
  • $ 컨테이너는 Zend_Navigation 객체에게 있습니다
  • $의 ACL은 Zend_Acl 객체
  • 입니다

나는 그는 초기 탐색 배열을 설정해야합니다. acl과 탐색 객체도 괜찮아 보입니다. 그래서 여기에 게시하지 않을 것입니다. 순간


우리는 같이 사용하여 구조 작업을 가지고 :

if(!$acl->isAllowed(/* auth data, controller, action */)) { 
    unset(/* this page from pages array */); 
} 

하지만이 모든 꽤하지 않고 공식 예에서 한 줄을 좋아하지.


내 질문은 여기에 대부분 내 문제이며 대부분의 일반적인 문제와 Zend_Acl로 Zend_Navigation을 결합하면서 개발자들이 실수는 무엇인가?

어쩌면 나는 그 중 하나의 해결책을 찾을 수 있으며 이것은이 문제에 문제가있는 다른 개발자에게 도움이 될 수 있습니다.

+0

추가 질문은 setRole ("1")에 대한 것입니다. 현재 롤 배열에 ID 만 포함되어 있으므로 현재 롤의 ID를 전달 중입니다. setRole()의 올바른 사용법입니까? – bogatyrjov

답변

1

제안이 있습니다. 왜 (모듈, 컨트롤러, 액션을 매개 변수로 사용하여) 뷰 헬퍼를 작성할 수 없으며 뷰 헬퍼에서 액세스를 확인할 수 있습니다.

단순히 리디렉션하는 대신보기 헬퍼를 사용하여 액세스를 확인하고 작업으로 전달할 수 있습니다.

이게 당신이 찾고 있는게 있니?