解决this之后,我遇到了另一个问题。我试图获取包含文本的字段,但是找不到找到它的方法。因此,在我的存储库中,我有一个名为my_database-# \d
List of relations
Schema | Name | Type | Owner
--------+---------------------------------------------+----------+-------
public | auth_group | table | my_user
public | auth_group_id_seq | sequence | my_user
public | auth_group_permissions | table | my_user
public | auth_group_permissions_id_seq | sequence | my_user
的函数,包含文本搜索的部分如下所示:
getSearchResults($searchParameter)
所以downloads字段的目标是sys_file_reference表,然后我想从sys_file表中获取text_pdf。
使用该代码,我得到以下错误消息:
$subjectParameter = $searchParameter[0]['subject'];
$subjectConstrains = array();
$subjectConstrains[] =
$query->logicalOr(
[
$query->like('title', '%' . $subjectParameter . '%'),
$query->like('subtitle', '%' . $subjectParameter . '%'),
$query->like('downloads.uidLocal.textPdf','%' . $subjectParameter . '%')
]
);
$constrains[] = $query->logicalOr($subjectConstrains);
我去了#1353170925: The relation information for property "uidLocal" of class "TYPO3\CMS\Extbase\Domain\Model\FileReference" is missing.
,看到了:
typo3/sysext/extbase/Classes/Domain/Model/FileReference.php
据我了解,这直接针对sys_file的uid字段,这意味着我实际上无法获取text_pdf字段,因为它已经从该表中选择了一个字段。
我之所以这样说是因为,如果我从like字段中删除public function getOriginalResource()
{
if ($this->originalResource === null) {
$this->originalResource = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getFileReferenceObject($this->getUid());
}
return $this->originalResource;
}
,我不会得到任何错误,这意味着它找到了文件,但没有找到我想要的字段。
其他: 我想我将不得不为text_pdf设置getters和setters,但是我不知道在哪里做。我的第一个猜测是在TCA / Overrides上,但我不确定。
预先感谢