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

TYPO3 ActionController入门:返回200状态码及URL配置疑问

自定义PbiController的路由配置与访问指南

一、必须手动注册路由

你用sitepackage-builder生成的模板,默认不会自动识别自定义控制器,得手动配置路由:

  1. 找到sitepackage里的Configuration/Routes.yaml(没有就新建)
  2. 添加上适配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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:07:46