2011-07-02 3 views
1

저는 Q을 구축하고 있습니다. 젠드 프레임 워크를 사용하는 StackOverflow와 같은 사이트입니다. 멋진 URL을 제외한 모든 설정입니다.젠드 프레임 워크를 사용하는 StackOverflow 스타일 라우팅

wwww.site.com/programming/questions/321345/question-title-sanitized-with-dashes 

또는

www.site.com/photography/questions/45621/photography-site-question 

뿐만 아니라 내가 좋아하는 사이트 홈페이지가 필요합니다 : URL은 좋아한다 나는 체인 경로를 사용해야 할 생각

www.site.com/programming 

하지만 도움이 좋을 것 .

+0

현재 경로는 무엇인가? – Femaref

+0

기본/: module/: controller/: 액션 스타일 라우팅을 변경하지 않았습니다. 왜냐하면 나는 어디서부터 시작해야할지 모르기 때문이다. – cnkt

답변

3

사용자 지정 경로를 사용하면이 작업을 매우 쉽게 수행 할 수 있습니다. 당신은 당신의 코드를 구조화 한 방법에 대해 아무것도 지정하지 않았기 때문에, 나는 다음과 같은 가정을 만들려고 해요 :

  • 귀하의 사이트가 발견 매개 변수를 기반으로 사진과 프로그래밍 등의 "섹션"가를
  • 당신은 모든 섹션에 대한 질문을 처리하는 하나의 컨트롤러를 가지고 있지만, 매개 변수

첫째을 기반으로 모든 것을 선택하고, 홈페이지 케이스 :

경로 :section 및 모듈에 대한 기본값을 지정, 컨트롤러 및 섹션 홈페이지를 처리하는 액션

둘째, 질문 케이스 :

경로 :section/questions/:id/:title, 다시 구체적인 질문을 처리하는 모듈, 컨트롤러와 액션에 대한 기본값을 지정합니다. 질문은 이미 ID를 기반으로 만 찾을 수 있기 때문에 제목의 기본값을 비어있는 것으로 정의 할 수도 있습니다.

그런 다음 컨트롤러에서 사용할 부분을 결정하기 위해 $this->_getParam('section')과 같은 것을 간단하게 사용할 수 있습니다.

당신이이 노선을 만드는 방법을 모르는 경우

, 나는 당신이 경로를 정의하는 방법에 대한 manual for Zend_Controller_Routermanual for Zend_Application resources 정독 제안 당신의 application.ini

+0

당신의 생각이 사실이기 때문에 나는 당신의 대답을 받아 들였습니다. 하지만 한 가지만 바뀌면 모든 경로를 다시 소개하고 싶지 않습니다. 이걸 정리하겠습니다. 나는 ": section"과 같은 사이트 경로를 만들었습니다. 경로가 일치합니다. 생각할 때, 질문에 대해서는 경로가 ": section/questions/: id/: title"이어야합니다. 그러나 우리는 "섹션 경로"를 다시 소개하고 있습니다. 내 문제는 : 우리는이 모든 경로를 연결할 수 있습니까? 왜냐하면 내가 "대답"페이지를 추가하고 싶다면 ": section/questions/: id/: title/answers"해야합니다. 그러나 "/ answers"라우트를 만들고 "questions"라우트로 연결하는 것이 더 효과적입니다. – cnkt

+0

예, 경로를 연결할 수 있지만 몇 가지 사항에 따라 원하는대로 작동하지 않을 수도 있습니다. [경로 연결에 대한 docs] (http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.chain)를 참조하십시오. –

관련 문제