TYPO3扩展自定义action中findAll()方法调用无效问题咨询
TYPO3 扩展 Repository 查询在自定义 Action 无返回的常见诱因
- 存储库默认启用了存储页PID限制,listAction 对应的插件配置了
Record Storage Page,但 customAction 对应的插件/入口没有配置该值,导致查询时自动加了pid=0的过滤条件,无匹配结果。可以临时添加$this->issueRepository->setDefaultQuerySettings($this->issueRepository->createQuery()->getQuerySettings()->setRespectStoragePage(false));验证是否为该问题。 - 自定义 Action 没有配置访问权限,TYPO3 前端访问时如果是未登录状态,查询默认会加
hidden=0、deleted=0、starttime/endtime 有效的隐藏字段过滤,同时如果没有权限访问页面/插件,会返回空结果集而非报错。 - 依赖注入未生效,issueRepository 在 customAction 中实际为 null,可添加
var_dump($this->issueRepository);验证对象是否正常初始化,若为空需要检查 Action 类的 inject 方法是否配置正确,或者 TYPO3 的 DI 缓存是否清理。 - 视图渲染问题,可在 customAction 中添加
var_dump($issues->toArray());验证查询是否真的无结果,若打印有数据则是 custom 对应的模板文件没有正确遍历输出issues变量,而非查询本身无效。 - TYPO3 缓存未清理,扩展新增的 customAction 没有被系统识别,或者旧的查询缓存没有清空,每次修改代码后需要在后台清空全部缓存,或者删除
var/cache目录验证。
内容的提问来源于stack exchange,提问作者Lazinbee
相关产品推荐
相关产品推荐

