Это мой контроллер Действие:TYPO3 Extbase JsonView FAL
public function jsonAction()
{
$this->view->setVariablesToRender(array('produkte'));
$this->view->setConfiguration(
array(
'produkte' => array(
'_descendAll' => array(
'only' => array('titel', 'beschreibung', 'bild', 'download', 'categories'),
'_descend' => array(
'bild' => array(),
'download' => array(),
'categories' => array(),
)
)
)
)
);
$this->view->assign('produkte', $this->produktRepository->findAll());
}
и я получаю очень хороший JSON-строку. К сожалению, я получаю только PID и UID для содержащихся файлов (FAL). Как я могу получить полный объект или, по крайней мере, путь к содержащимся файлам?
/**
* Returns the bild
*
* @return \TYPO3\CMS\Extbase\Domain\Model\FileReference $bild
*/
public function getBild()
{
return $this->bild;
}
/**
* Returns the download
*
* @return \TYPO3\CMS\Extbase\Domain\Model\FileReference $download
*/
public function getDownload()
{
return $this->download;
}
Можете ли вы рассказать о соответствующих частях модели Produkt? – lorenz
ok, редактировать выше. Надеюсь, это правильная часть. – hydrococcus
Я подозреваю, что это связано с тем, что свойства объектов ссылки на файлы и файлы не являются реальными объектными свойствами, но хранятся как лениво загруженный ассоциативный массив (с именем 'properties', я думаю). 'JsonView' обрабатывает только те, которые он может получить, вызывая' get_object_vars' (через вызов [getGettablePropertyNames()] (https://typo3.org/api/typo3cms/_object_access_8php_source.html#l00232)), который использует ' get_object_vars'. Попробуйте вывести свойство 'properties', может быть, это поможет? Не уверен, что это правильно. – Jost