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
相关产品推荐
相关产品推荐

