참고 : http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.standard - 명확한 설명은 "12.5.7.1 Zend_Controller_Router_Route."를 찾습니다.
이것은 최선의 방법은 아니지만 실제로 작동하는 예가 있습니다. 나는 교정을 환영한다. Shorten Zend Framework Route Definitions을보고 나면 이름이 지정된 라우트가 자신의 구성 (나는 장고를 사용하고 뷰/URL은 일반적으로 분리되어 있음)에 있어야한다고 동의합니다.하지만 여기서는 내 부트 스트랩에 경로를 정의 할 것입니다.
그래서, Bootstrap.php에, 물론 부트 스트랩 클래스 안에, 내가 자동과 같이 실행 될 것이다 함수를 만들었습니다
public function _initRoutes()
{
$frontController = Zend_Controller_Front::getInstance();
$route = new Zend_Controller_Router_Route(
'login/', // The URL, after the baseUrl, with no params.
array(
'controller' => 'login', // The controller to point to.
'action' => 'index' // The action to point to, in said Controller.
)
);
$frontController->getRouter()->addRoute('loginpage', $route);
}
을 위의 예에서 "를 loginpage"입니다 "Named Route"의 이름.
그래서, 내 인 LoginController 내부 (양식을 빌드하는 기능에서) 대신에 내가 지금처럼 명명 된 경로의 URL을 검색하고 그에서 통과
$form->setAction('/blah/login')
일을 :
$form_action_url = $this->view->Url(array(), 'loginpage', true);
// -- SNIP --
$form->setAction($form_action_url) // ...
이것은 의미가 없거나 잘못되었을 수 있지만 지금은 효과가있는 것처럼 보입니다. 젠드 프레임 워크가 URL을/Controller/View (Action)/자동으로 처리 할 때 명명 된 URL을 원한다. 난 장고를 잠시 사용했는데, URL은 미리 정의되어 있고, 나는 그런 식으로 좋아한다.
젠드 프레임 워크 MVC는 멋진 동작을하는 url입니다.
어떻게 작동하는지 메모와 수정 사항을 자유롭게 추가하십시오.
보기에서 동작을 설정할 수없는 이유가 없으므로 구문이 조금 더 멋지게 나옵니다. –
Form이 "loginpage"라는 단어에 의존하고 "loginpage"가 Bootstrap.php에 정의되었으므로 종속성이 잘못 정의되지 않았습니까? 내가 Bootstrap.php는 로그인 컨트롤러가 외부 모듈 등에서 오는 동안 사이트 전체 파일입니까? – Ciantic