2016-07-11 2 views
0

오류가 발생하면 유효성 검사 후 양식이 있습니다. 오류 메시지와 함께 페이지가 편집 자체로 리디렉션됩니다. 이전 데이터 및 typo3의 redirect()를 통해 오류 메시지를 전달하는 방법은 무엇입니까?데이터를 전달 redirect() - Typo3

$this->redirect($action_name,$controllername, $extensionName, array('data',$data)); 

맞습니까?

내 작업 이름은 'edit'입니다. 그러나 'list'으로 리디렉션됩니다.이 문제를 해결할 수 있도록 도와주세요.

+0

extBase Fluid Book 그냥 확인하기 위해, 당신은 '편집'에 $ ACTION_NAME를 어떻게 설정 했는가? 작업 이름을 확인할 수 없어서 기본 작업이 호출 될 수 있습니다. listAction이 기본 동작입니까? – sven

답변

4

리디렉션 대상에 전달할 인수를 연관 배열로 지정해야합니다. 키는 인수 이름이며 ($이없는 actions 메소드 헤더에서와 같이) 값은 인수 값입니다. 다음과 같습니다 $data가 URL로 인코딩 정확히 어떻게

$this->redirect(
    $action_name, 
    $controllername, 
    $extensionName, 
    [ 
     'data' => $data 
    ] 
); 

는 유형에 따라 달라집니다. 영속 객체는 ID로 인코딩되고, 스칼라는 간단한 문자열로 인코딩됩니다. 그들이 다른 작업에 도착하는 방법은 해당 작업의 typehints 및 @param 주석에 따라 다릅니다.

동일한 컨트롤러 또는 확장 프로그램으로 리디렉션하려면 $controllerName$extensionNamenull으로 전달할 수 있습니다.

+0

Uid가 아닌 객체 자체를 전달할 수도 있습니다. – sven

+0

+1 당신이 전달할 수있는 @Jost와 하나 이상의 매개 변수는 FE 플러그인이 구성된 pageUid입니다 : $ this-> redirect ($ action_name, $ controllername, $ extensionName, array ('data'=> 'arguments'), $ pageUid) ; –

3

인수는 키 값 쌍이있는 배열로 전달됩니다. 여기서 키는 매개 변수 이름입니다. 여기서는 대상 액션에 "data"라는 매개 변수가 있다고 가정합니다. $this->redirect($action_name,$controllername, $extensionName, array('data' =>$data));

1

요스트의 대답은 귀하의 질문에 충분하지만 더 많은 것을 알고 싶은 경우 :

  1. 컨트롤러 동작이 editAction해야한다()
  2. 당신은 ext_localconf.php
  3. 에 액션/컨트롤러를 등록해야
  4. 플러그인에서 동작을 허용해야합니다. [더 많은 액션 또는 switchableControllerActions가있는 경우]
  5. clear install tool cache가 magik을 생성하는 경우가 있습니다.)

은 참조 :