2009-05-12 1 views
0

Zend Framework와 MVC를 사용하여 매우 기본적인 사이트를 구성했습니다. (사실, 지금은 모델을 사용하지 않고 있습니다. 지금까지는 고정 정보에 대한 컨트롤러/뷰만이었습니다.) URL이 포함MVC를 사용하여 Zend Framework에서 매우 간단한 Named Route 만들기

$form->setAction('/user/login') 

: 나는 양식과 놀겠다는 거 시작했을 때

내가 Zend_Form의 예에서 그들이이 폼의 동작을 설정 같은 것을 사용하는 것이 깨달았다. 나는 Zend Framework에 경로가 있고 이름을 붙일 수 있다고 생각하지만, 매뉴얼에서 특정 컨트롤러/액션에 대한 간단한 경로를 만드는 방법을 알 수 없어서 다음과 같이 할 수 있습니다.

제 질문에 대한 답변을 드리겠습니다. 나는 어떤 중복 질문도 찾을 수 없었지만, 하나를 찾아 내면 그것을 지적한다.

리소스에 대한 링크는 예제와 마찬가지로 좋기 때문에 어딘가에서 괜찮은 블로그 게시물을 알고 있다면 시간을 낭비하지 마십시오. 감사!

답변

1

참고 : 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입니다.

어떻게 작동하는지 메모와 수정 사항을 자유롭게 추가하십시오.

+0

보기에서 동작을 설정할 수없는 이유가 없으므로 구문이 조금 더 멋지게 나옵니다. –

+0

Form이 "loginpage"라는 단어에 의존하고 "loginpage"가 Bootstrap.php에 정의되었으므로 종속성이 잘못 정의되지 않았습니까? 내가 Bootstrap.php는 로그인 컨트롤러가 외부 모듈 등에서 오는 동안 사이트 전체 파일입니까? – Ciantic

관련 문제