Typo3错误:缺少ColumnMap属性

时间:2017-11-10 08:20:52

标签: extbase typo3-extensions

我使用的是Typo3版本8.7.8而且我正在开发一个扩展版本。 两张桌子" auftrag"和" verstorbener"与1:n的关系连接起来。 我试图在表格中搜索一个字段" verstorbener"在" auftrag"的存储库中。两者的关系是必要的。

如果我尝试执行以下查询,我会收到错误" ColumnMap for property" verstorbener"班级" ... \ Auftrag"缺少。"



$name = "Mustermann";
		
$query->matching(
			$query->logicalAnd(
      $query->equals('verstorbener.nachname', $name)
			)
		);




我该如何解决这个问题? 如果您需要更多输入,请随时提出要求。

编辑 - 字段的相关TCA代码" verst_id" in" auftrag"其中包含" verstorbener"的UID:

    'verst_id' => [
        'exclude' => true,
        'label' => 'LLL:EXT:.../locallang_db.xlf:auftrag.verst_id',
        'config' => [
            'type' => 'inline',
            'foreign_table' => 'verstorbener',
            'foreign_field' => 'uid',
            'minitems' => 0,
            'maxitems' => 1,
            'appearance' => [
                'collapseAll' => 0,
                'levelLinksPosition' => 'top',
                'showSynchronizationLink' => 1,
                'showPossibleLocalizationRecords' => 1,
                'showAllLocalizationLink' => 1
            ],
        ],
    ],

编辑 - 这是对象模型

/**
 * verstId
 *
 * @var \...\Domain\Model\Verstorbener
 */
protected $verstId = null;

/**
 * Returns the verstId
 *
 * @return \...\Domain\Model\Verstorbener $verstId
 */
public function getVerstId()
{
    return $this->verstId;
}

/**
 * Sets the verstId
 *
 * @param \...\Domain\Model\Verstorbener $verstId
 * @return void
 */
public function setVerstId(\...\Domain\Model\Verstorbener $verstId)
{
    $this->verstId = $verstId;
}

2 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。 似乎在Typo3缓存中存在一些旧数据。 清除后端或安装程序中的缓存并没有帮助。 我已经手动卸载并重新安装了扩展程序。

答案 1 :(得分:0)

将扩展从Typo3 v6升级到Typo3 v8时遇到了此问题。包含TCA配置文件的机制已更改,因此/Configuration/TCA/中的文件需要根据扩展名来命名。例如:tx_extension_domain_model_auftrag.php TCA配置文件仅包含一个返回数组,不再包含$TCA['tx_extension_domain_model_auftrag']

如果您的ctrl中有TCA ext_tables.php配置,则将其组合到相应的TCA文件中,并删除dynamicConfigFile定义!

希望有帮助:)