TYPO3 Extension-Builder输出流体中IRRE的选择值

时间:2016-07-17 10:23:33

标签: typo3 fluid extbase typo3-extensions extension-builder3

我一起点击了扩展构建器中的一个小扩展。 它是具有IRRE元素的一般对象(墙)(墙上的窗口 - 1:n)。此IRRE元素具有不同值的选择框(窗口颜色)。我在Override文件夹中添加了值,因此当我在Extension Builder中添加另一个字段时,它们不会被覆盖。

在我的模板中,我循环遍历所有n个元素,并尝试以局部方式输出每个元素。但现在在浏览器中只显示ID而不是值。

这是我的TCA-Override:

$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。 我没有别的:我改变了控制器,也没有工作过多...

你们有没有人知道我?我几个小时都在谷歌搜索没有任何结果。

1 个答案:

答案 0 :(得分:1)

  

TCA-替代:

$GLOBALS['TCA']['MY_EXTENSIO']['columns']['color']['config']['items'] = [
['Green', '#060'],
['Red', '#F00'],
['Blue', '#00F'], // for better practice I suggest classes like: ['Blue', 'blue-color-code']
['Gray with orange dots', '#999'],
];
  

在ext_tables.sql中更改字段类型 - >不要忘记从安装工具更新数据库

CREATE TABLE tx_hous_domain_model_window (
   color varchar(255) DEFAULT '' NOT NULL
);
  

看看你的模特应该是这样的:

class Window extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
   protected $color = '';

   public function getColor() {
        return $this->color;
   }
   public function setColor($color) {
        $this->color = $color;
   }
}
  在您看来

{window.color} <!-- either you'll get '#00F' for blue or 'blue-color-code' class as per your TCA config -->
  

不要忘记清除安装工具缓存