2016-07-11 32 views
0

我有一個表單驗證後,如果發生任何錯誤頁面將重定向到編輯本身與一個錯誤消息。如何通過以前的數據和錯誤消息通過重定向()typo3?傳遞數據在重定向() - Typo3

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

是不是?

我的動作名稱是'edit'但它重定向到'list'。請幫我解決這個問題。

+0

只是爲了確保,你是怎麼設置$ ACTION_NAME到 '編輯'?問題可能是操作名稱無法解析,然後調用默認操作。 listAction是您的默認操作嗎? – sven

回答

4

傳遞給重定向目標的參數必須作爲關聯數組給出。關鍵是參數名稱(如在動作方法標題中,沒有$),該值是參數值。看起來是這樣的:

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

究竟是如何$data在URL編碼取決於其類型。持久對象被編碼爲ID,標量被編碼爲簡單的字符串。他們如何到達另一個行動取決於那個行爲typehints和@param註釋。

要重定向到相同的控制器或分機,您可以通過$controllerName$extensionName作爲null

+0

你也可以傳遞對象本身而不僅僅是Uid。 – sven

+0

+1 @Jost和一個你可以傳遞的參數是pageUid,你的FE插件配置在這裏:$ this-> redirect($ action_name,$ controllername,$ extensionName,array('data'=>'arguments'),$ pageUid) ; –

3

參數以包含鍵值對的數組形式傳遞,其中鍵是參數名稱。這假設您的目標操作具有名爲「數據」的參數。 $this->redirect($action_name,$controllername, $extensionName, array('data' =>$data));

1

喬斯特的答案是足夠你的問題,但如果你想知道更多:

  1. 控制器動作要editAction()
  2. 你應該ext_localconf.php
  3. 註冊你的動作/控制器
  4. 你必須允許你的動作插件Flexform配置[如果更多的動作或switchableControllerActions]
  5. 清除安裝工具緩存有時創建magik;)

參考:extBase Fluid Book