【问题标题】:Typo3 Error: The ColumnMap for property is missingTypo3 错误:缺少属性的 ColumnMap
【发布时间】:2017-11-10 08:20:51
【问题描述】:

我正在使用 Typo3 版本 8.7.8,并且正在开发扩展。 “auftrag”和“verstorbener”这两个表是具有 1:n 关系的连接。 我尝试在“auftrag”存储库中的“verstorbener”表中搜索一个字段。两者的关系是必要的。

如果我尝试执行以下查询,我会收到错误 “类“...\Auftrag”的属性“verstorbener”的 ColumnMap 丢失。”

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

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

编辑——“auftrag”中“verst_id”字段的相关TCA代码,其中包含“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;
}

【问题讨论】:

  • 您的表 'auftrag' 中是否有字段 'verstorbener' 和 TCA 配置?确保您可以将表 'verstorbener' 中的条目添加到后端的表 'auftrag' 中。然后请发布您的 TCA sn-p,正如我们所见,您的字段是如何命名的。
  • 我有一个名为“verst_id”的字段,其中包含“verstorbener”表中的 uid。
  • 那么你应该在你的 Classes/Domain/Repository/AuftragRepository 中使用 "$query->equals('verst_id.nachname', $name)"
  • 我似乎遇到了同样的错误:“...\Domain\Model\Auftrag”类的属性“verst_id”的 ColumnMap 丢失。
  • 因为模型中没有$verstId

标签: extbase typo3-extensions


【解决方案1】:

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

【讨论】:

  • 我有同样的问题(但使用 m:n),但卸载并重新安装并没有解决问题。你还做了什么?
【解决方案2】:

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

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

希望有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2016-06-01
    • 1970-01-01
    • 2019-10-30
    • 2011-10-07
    • 1970-01-01
    相关资源
    最近更新 更多