После разрешения этого я столкнулся с другой проблемой. Я попытался получить поле, содержащее текст, но не могу найти способ получить к нему доступ. Так что в моем хранилище у меня есть функция, которая называется getSearchResults($searchParameter)
, и часть, которая содержит текстовый поиск выглядит следующим образом:
$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);
Итак, поле загрузок предназначено для таблицы sys_file_reference, а затем я хочу получить text_pdf из таблицы sys_file.
С этим кодом я получаю следующее сообщение об ошибке:
#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
и увидел это:
public function getOriginalResource()
{
if ($this->originalResource === null) {
$this->originalResource = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getFileReferenceObject($this->getUid());
}
return $this->originalResource;
}
Насколько я понимаю, это относится непосредственно к полю uid файла sys_file, то есть я не могу получить поле text_pdf, поскольку оно уже выбрало поле из этой таблицы.
Я говорю это, потому что, если я удаляю textPdf
из аналогичного поля, я не получаю никаких ошибок, то есть он находит файл, но не поле, которое я хотел бы получить.
Дополнительно:
Я полагаю, мне придется установить getters и setters для text_pdf, но я не знаю, где это сделать. Мое первое предположение было бы на TCA / Overrides, но я не совсем уверен.
Заранее спасибо,