2011-08-09 4 views
2

저는 Zend의 새로운 개발자이며 Zend에서 아주 간단한 응용 프로그램을 통해 페이지를 게시 할 수있게 될 것입니다.Zend 프레임 워크에서 명시 적으로 잘못된 컨트롤러를 처리합니다.

이렇게하려면 컨트롤러 이름과 동작 이름이 없으면 가져 오는 방법을 만들어야합니다.

예를 들어 페이지라는 컨트롤러가 있고 해당 컨트롤러의보기 동작에서 ID Pass를 기반으로 페이지 콘텐츠를 표시합니다. 그것은 또한 그 슬러그에 대한 DB를 serch해야

http://localhost/page/view/slug/some-slug-value 

가 나는 다음과 같은 링크를 작성하는 경우,

http://localhost/some-slug-value 

대신

잘못된 컨트롤러 오류를 표시하는 것을 원하고보기를 열 : 그래서 그는 URL 될 것입니다 액션을 페이지 컨트롤러에 추가합니다.

일부 오류를 표시해야하는 경우에도 http://localhost/some-slug-value URL을 변경하고 싶지 않습니다.

내가 잘못된 동작을 처리해야한다면 해당 컨트롤러의 __call() 함수를 통해 처리 할 수 ​​있습니다. 그래서 나는 잘못된 컨트롤러를 다루기 위해 __call 함수가 필요하다.

Zend의 새로운 기능이므로 제안 할 코드를 어디에 써야하는지 언급하십시오.

답변

1

Zend_Controller_Plugin_ErrorHandler 인해 누락 컨트롤러/액션에 예외를 처리 할 수있는 사전에

감사는 기본적으로 활성화되어 있습니다. 논리를 내부에 넣을 수 있습니다.

1

사용자 정의 플러그인 here을 사용하기 전에 비슷한 질문에 답했습니다.

기본적으로 요청을 발송할 수 있는지 확인하고 요청할 수없는 경우 다른 컨트롤러/작업으로 리디렉션합니다. 이것은 ErrorHandler 플러그인이 ErrorHandler가 의도 한 대로만 오류를 처리 할 수있게하기 전에 발생합니다. 내가 그 여관에게 연결 문제에 플러그인을주의해야한다

편집, 나는 이름을 참조. 귀하의 경우 사용자 이름 대신 슬러그를 사용해야합니다.

관련 문제