【发布时间】: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