これは私のコントローラのアクションです: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-文字列を取得します。残念ながら、私は含まれているファイル(FAL)のPIDとUIDだけを取得します。どのようにして完全なオブジェクトを取得するか、含まれているファイルへのパスを取得することはできますか?
/**
* 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'は、' getGettablePropertyNames() '(https://typo3.org/api/typo3cms/_object_access_8php_source.html#l00232)の呼び出しによって 'get_object_vars'を呼び出すことによって得ることができるものだけを処理します。 get_object_vars'を実行します。プロパティー 'properties'を出力してみてください。おそらくそれは役に立ちますか?これが正しいかどうかはわかりません。 – Jost