2012-10-05 2 views

답변

1

동일한 모듈에 대한 또 다른 컨트롤러 클래스 인 저는 심포니에서는 불가능하다고 생각합니다.

가장 쉬운 해결책은 동일한 클래스에서 다른 메소드를 만든 다음 기본 메소드에서 인보 크 (invoque)하는 것입니다. 예함으로써

: actions.class.php :

public function executeBaseAction(sfWebRequest $request) { 

    .. if($user....) then return $this->executeCustomAction($request); 

} 

public function executeCustomAction(sfWebRequest $request) { 
    // $this->setTemplate('anotherTemplate?'); 

} 
+0

그게 바로 지금하고있는 일입니다. 상속 등으로 더 우아한 솔루션을 원했습니다 ... 어쨌든 고마워요! –

+0

Nop. Symfony는 actions 폴더에있는 actions.class.php 파일을 검색합니다. 그리고 해당 클래스 이름은 "module_folder_name"조치와 일치해야합니다. – glerendegui

0

는 실제로 같은 모듈에 대해 다른 컨트롤러 클래스를 추가 할 수 있습니다.

당신은 이런 방식으로 작업 디렉토리에 여러 파일을 포함 할 수있다 :

이 action2Action.class에서 템플릿 action1Success.php

를 사용합니다

class action1Action extends sfAction 
{ 
    public function execute($request) { 
     //Your code here 
    } 
} 

action1Action.class.php

에서. PHP

class action2Action extends sfAction 
{ 
    public function execute($request) { 
     //Your code here 
    } 
} 

이렇게하면 action2Success.ph 템플릿이 사용됩니다. p

관련 문제