0

누구나 다음을 구현하는 가장 좋은 방법을 알고 있다면 궁금한 점이 있습니까 : 물건의 '범위'를 효과적으로 제어하는 ​​제 젠드 프레임 워크 1.12 앱에 매개 변수가 있습니다. 행의 범위를 나타내는 내 DB의 테이블. 이것은 단순한 정수형 변수이며 'buildingID'로 생각할 수 있으므로 우리가 작업하고있는 '건물'을 제어합니다. 플러그인에서 Zend Routing/URL 도우미. 전역 매개 변수를 URL에 처음으로 표시하십시오.

, 나는이 :

내가 필요한 것을 수행
Zend_Controller_Front::getInstance()->getRouter()->setGlobalParam('building', DYNAMIC_INT); 

. URL 뷰 헬퍼를 사용하여 URL을 만들면 매개 변수가 있지만 매개 변수 목록의 끝에 항상 있습니다. 이것이 프로그래밍 측면에서 볼 때 사소한 것임을 알고 있습니다 만, 어떻게하면이 전역 매개 변수를 URL 매개 변수에 'prepending'할 수 있습니까?

site.com/admin/controller/action/param1/xyz/param2/xyz/building/2 

은 어떤 아이디어에

site.com/admin/controller/action/building/2/param1/xyz/param2/xyz ? 

열기 될 수 있습니다. 내가이 클래스를 설정하는 데 어려움을 겪었 기 때문에 URL보기 도우미에 과부하를 걸려면 몇 가지 예제 코드를 제공 할 수 있습니까?

감사합니다.

답변

0

이 작업을 수행하려면 custom route을 사용할 수 있습니다. 설치 부트 스트랩 파일에 어딘가에 경로 : 다음을 어떤 시점에서 이전 URL보기 도우미를 사용하여 호출 된 것을 가정 한 후

$route = new Zend_Controller_Router_Route(
    ':controller/:action/building/:building/*' 
); 
$router = Zend_Controller_Front::getInstance()->getRouter(); 
$router->addRoute('building', $route); 

그리고 ...

Zend_Controller_Front::getInstance()->getRouter()->setGlobalParam('building', DYNAMIC_INT); 

... 당신은 도우미의 두 번째 인수로 경로를 지정할 수 있습니다.

echo $this->url(array(
    'controller' => 'admin', 
    'action' => 'controller', 
    'param1' => 'xyz', 
    'param2' => 'xyz', 
), 'building'); 

// /admin/controller/building/1/param1/xyz/param2/xyz 
+0

이 아름답게 작동합니다. 팁 주셔서 감사합니다 ... 나에게 아주 분명 지금은해야 할 일 – sudoyum