TYPO3 ActionController入门:返回200状态码及URL配置疑问
自定义PbiController的路由配置与访问指南
一、必须手动注册路由
你用sitepackage-builder生成的模板,默认不会自动识别自定义控制器,得手动配置路由:
- 找到sitepackage里的
Configuration/Routes.yaml(没有就新建) - 添加上适配Extbase的路由规则,示例代码如下:
routeEnhancers: PbiControllerRoutes: type: Extbase extension: 你的扩展key # 替换成sitepackage实际的扩展key,比如生成模板时填的my_sitepackage plugin: Pbi routes: - routePath: '/pbi/get' _controller: 'Pbi::get' _arguments: {} defaultController: 'Pbi::get' defaults: format: 'json' # 做接口的话建议加上,指定返回格式 requirements: format: 'json'
二、访问URL格式
路由配置好并清缓存后,访问URL是:你的站点域名/站点路径/pbi/get
比如本地测试的话,就是http://localhost/pbi/get(如果站点没有子路径)
三、控制器代码规范
你的PbiController.php要放在Classes/Controller/目录下,代码得符合Extbase规范,示例:
<?php namespace Vendor\SitePackage\Controller; // 替换成你的Vendor和扩展名,比如MyCompany\MySitepackage\Controller use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Core\Http\JsonResponse; class PbiController extends ActionController { public function getAction() { // 直接返回200状态的JSON响应 return new JsonResponse(['status' => 'success'], 200); } }
四、必做的收尾操作
- 确认控制器命名空间和文件路径完全对应,不然TYPO3找不到控制器
- 修改完路由和代码后,一定要刷新TYPO3的系统缓存(后台→维护→清除缓存)
- 如果不需要前端插件,也可以把路由类型改成
Simple来简化配置,但Extbase类型更适配ActionController的逻辑
内容的提问来源于stack exchange,提问作者peni4142
相关产品推荐
相关产品推荐

