在 redirect() 中传递数据 - Typo3

Pass data in redirect() - Typo3

我在验证后有一个表单,如果发生任何错误,页面将重定向到编辑本身并出现错误 message.How 以通过 typo3 中的 redirect() 传递以前的数据和错误消息?

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

对吗?

我的操作名称是'edit'但是它被重定向到'list'。请帮我解决这个问题。

传递给 redirect-target 的参数必须作为关联数组给出。键是参数名称(如在动作方法中 header,没有 $),值是参数值。看起来像这样:

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

$data 在 URL 中的编码方式取决于它的类型。持久性 objects 被编码为它们的 ID,标量被编码为简单的字符串。它们如何到达另一个动作取决于该动作类型提示和 @param 注释。

要重定向到相同的控制器或扩展,您可以将 $controllerName$extensionName 作为 null 传递。

参数作为具有键值对的数组传递,其中键是参数名称。这假设您的目标操作有一个名为 "data" 的参数。 $this->redirect($action_name,$controllername, $extensionName, array('data' =>$data));

Jost 的回答足以解决您的问题,但如果您想了解更多信息:

  1. 你的控制器动作应该是 editAction()
  2. 您应该在 ext_localconf.php
  3. 中注册您的 action/controller
  4. 您必须在插件 Flexform 配置中允许您的操作 [如果有更多操作或 switchableControllerActions]
  5. 清除安装工具缓存有时会创建 magik ;)

参考:extBase Fluid Book