Typo3 Error: The ColumnMap for property is missing
Typo3 Error: The ColumnMap for property is missing
我使用的是 Typo3 8.7.8 版,我正在开发一个扩展。
两个 table 的 "auftrag" 和 "verstorbener" 是具有 1:n 关系的连接体。
我尝试在 "auftrag" 的存储库中搜索 table "verstorbener" 中的字段。两者的关系是必要的。
如果我尝试执行以下查询,我会得到错误 "The ColumnMap for 属性 "verstorbener" of class "...\Auftrag" is不见了。”
$name = "Mustermann";
$query->matching(
$query->logicalAnd(
$query->equals('verstorbener.nachname', $name)
)
);
我该如何解决这个问题?
如果您需要更多信息,请随时提出要求。
编辑--"auftrag"中字段"verst_id"的相关TCA代码,包含[=36=]的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;
}
我已经解决了这个问题。
似乎在 Typo3 缓存中放置了一些旧数据。
在后端或安装程序中清除缓存没有帮助。
我手动卸载并重新安装了扩展程序。
我在将扩展从 Typo3 v6 升级到 Typo3 v8 时遇到了这个问题。包含 TCA 配置文件的机制已更改,因此 /Configuration/TCA/
中的文件需要根据扩展名命名。例如:tx_extension_domain_model_auftrag.php
TCA配置文件只有一个return数组,没有$TCA['tx_extension_domain_model_auftrag']
!
如果您的 ext_tables.php
中有 TCA ctrl
配置,则将其合并到相应的 TCA 文件中并删除 dynamicConfigFile
定义!
希望对您有所帮助:)
我使用的是 Typo3 8.7.8 版,我正在开发一个扩展。 两个 table 的 "auftrag" 和 "verstorbener" 是具有 1:n 关系的连接体。 我尝试在 "auftrag" 的存储库中搜索 table "verstorbener" 中的字段。两者的关系是必要的。
如果我尝试执行以下查询,我会得到错误 "The ColumnMap for 属性 "verstorbener" of class "...\Auftrag" is不见了。”
$name = "Mustermann";
$query->matching(
$query->logicalAnd(
$query->equals('verstorbener.nachname', $name)
)
);
我该如何解决这个问题? 如果您需要更多信息,请随时提出要求。
编辑--"auftrag"中字段"verst_id"的相关TCA代码,包含[=36=]的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;
}
我已经解决了这个问题。 似乎在 Typo3 缓存中放置了一些旧数据。 在后端或安装程序中清除缓存没有帮助。 我手动卸载并重新安装了扩展程序。
我在将扩展从 Typo3 v6 升级到 Typo3 v8 时遇到了这个问题。包含 TCA 配置文件的机制已更改,因此 /Configuration/TCA/
中的文件需要根据扩展名命名。例如:tx_extension_domain_model_auftrag.php
TCA配置文件只有一个return数组,没有$TCA['tx_extension_domain_model_auftrag']
!
如果您的 ext_tables.php
中有 TCA ctrl
配置,则将其合并到相应的 TCA 文件中并删除 dynamicConfigFile
定义!
希望对您有所帮助:)