【发布时间】:2016-07-17 10:23:33
【问题描述】:
我在 Extension Builder 中一起点击了我的一个小扩展。 它是具有 IRRE 元素(墙上的窗户 - 1:n)的一般对象(墙)。此 IRRE 元素有一个具有不同值的选择框(窗口颜色)。我在 Override-folder 中添加了值,因此当我在 Extension Builder 中添加另一个字段时它们不会被覆盖。
在我的模板中,我循环遍历所有 n 个元素并尝试以部分形式输出每个元素。但是现在在浏览器中只显示 ID,而不是值。
这是我的 TCA 覆盖:
$GLOBALS['TCA']['MY_EXTENSIO']['columns']['color']['config']['items'] = [
['Green', 0],
['Red', 1],
['Blue', 2],
['Gray with orange dots', 3],
];
我在局部渲染它的方式
{window.color} // window is the passed variable of the loop
在后端一切正常。即使我保存数据,重新加载......总是选择颜色的名称(例如“蓝色”)。但在前端,输出只是“2”——颜色的 ID。 我没有做任何其他事情:我改变了控制器,也没有使用多语言......
你们有谁知道我的线索吗?我在谷歌上搜索了几个小时没有任何结果。
【问题讨论】:
-
您的 TCA 配置将在 BE 中显示选择框,因此您从 BE 中保存它将保存选择框的值,因为您为 Blue 提供了 2。您可以提供类似 ['Blue'=>'#00F'] 的值,并且需要检查您的 DB 'color' 字段类型是 varchar 还是 numeric。在这种情况下,您需要您的数据库字段类型 varchar。
-
TCA 字段配置在覆盖之前是什么样子的?可以发在这里吗?
-
@Ghanshyam Gohel,我按照您的建议更改了代码,但现在无法在后端保存条目。每次都会报错:“ 1:表“tx_hous_domain_model_window”中记录3的这些字段没有正确保存:颜色!由于数据库的类型转换,值可能已更改。有没有办法改变数据库?
标签: typo3 fluid extbase typo3-extensions extension-builder3