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

TYPO3 10.4部分数据库字段无法获取至前端的问题排查与解决

TYPO3 10.4部分字段前端无法获取问题解决

问题描述

使用TYPO3 10.4版本,已完成Models、Repositories和Controller的创建,后端可正常将值写入数据库,但部分字段无法在前端获取,其余字段显示正常。

其中$mehrHtml和$customRender字段在数据库中有值,但前端无法读取;$type为select类型,$name和$beschreibung为input类型,这几个字段正常显示。无法获取的两个字段在TCA中配置的是config.type='text';另外还有一个模型里,text类型字段能正常读取,但integer类型字段无法获取。

相关模型代码

class Element extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
{
    protected $type = "";
    protected $name = "";
    protected $beschreibung = "";
    protected $customRender = "";
    protected $mehrHtml = "";
    protected $formsUsingThisElement = "";

    public function __construct(string $type='', string $name='', string $beschreibung = '', string $customRender = '') {
        $this->setType($type);
        $this->setName($name);
        $this->setBeschreibung($beschreibung);
        $this->setCustomRender($customRender);
    }

    public function setType(string $type):void {
        $this->type = $type;
    }
    public function getType():string {
        return $this->type;
    }

    public function setName(string $name):void {
        $this->name = $name;
    }
    public function getName():string {
        return $this->name;
    }

    public function setBeschreibung(string $beschreibung):void {
        $this->beschreibung = $beschreibung;
    }
    public function getBeschreibung():string {
        return $this->beschreibung;
    }

    public function setCustomRender(string $customRender):void {
        $this->customRender = $customRender;
    }
    public function getCustomRender():string {
        return $this->customRender;
    }

    public function setMehrHtml(string $mehrHtml) {
        $this->mehrHtml = $mehrHtml;
    }
    public function getMehrHtml() {
        return $this->mehrHtml;
    }

    public function setFormsUsingThisElement(string $formsUsingThisElement):void {
        $this->formsUsingThisElement = $formsUsingThisElement;
    }
    public function getFormsUsingThisElement(): string {
        return $this->formsUsingThisElement;
    }
}

问题解决

排查后发现,数据库列名使用了小驼峰命名(lowerCamelCase),但TCA配置中对应的字段用了蛇形命名(snake_case),导致字段映射不匹配,修正TCA配置后问题解决。

修正后的TCA配置示例:

return [
    'ctrl' => [
        //... 其他配置内容
    ],
    'columns' => [
        'default_options' => [ // 重点:此处用蛇形命名,与数据库列名一致,而非模型中的小驼峰变量名
            'exclude' => true,
            'label' => 'Standardangaben',
            'config' => [
                //.... 字段具体配置
            ],
        ],
    ],
];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:25:21