You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3扩展开发:跳转至编辑页后editAction未执行,无法获取对象属性值

问题分析与解决方案

核心问题点

  1. 链接参数传递错误:原f:link.action中arguments="{person:'{person}'}"的写法会将$person对象强制转为字符串,无法正确传递实体对象到控制器。
  2. 重定向参数与动作参数不匹配:toEditAction重定向时传递的参数键是personenliste,但editAction的参数变量名是$person,导致TYPO3无法正确映射注入对象。
  3. 冗余的中转动作:toEditAction属于多余的中转环节,直接链接到edit动作即可减少跳转引发的问题。

修正后的代码

1. 简化控制器代码(移除冗余的toEditAction)

public function editAction(Personenliste $personenliste) {
    $this->view->assign('personenliste', $personenliste);
    return $this->htmlResponse();
}

注意:将参数名改为$personenliste,和后续传递的参数键保持一致,确保TYPO3的对象映射能正常工作。

2. 修正前端链接调用

<f:link.action 
    action="edit" 
    arguments="{personenliste: person}" 
    extensionName="testprivateext" 
    controller="Listen" 
    pluginName="pi1"
>🔍</f:link.action>

直接链接到edit动作,参数键personenliste和控制器动作的参数名对应,无需给person加引号和嵌套花括号,直接传递对象即可。

额外检查项

  • 确认Personenliste模型已正确配置TYPO3对象映射(在ext_typoscript_setup.typoscript中配置config.tx_extbase.persistence.classes)。
  • 检查插件pi1的配置,确保edit动作在允许的动作列表中(TypoScript配置plugin.tx_testprivateext_pi1.settings.allowedActions包含edit)。
  • 若问题仍存在,打开TYPO3调试模式,查看请求参数是否正确携带personenliste的UID,以及控制器是否接收到正确的对象。

内容的提问来源于stack exchange,提问作者Starzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:24:11