我有一个古典课程和日期关系(一门课程有很多日期)。接下来的课程将列在页面上。我使用正常的findAll()方法加载所有日期,并使用startDate进行排序。现在我需要父课程信息才能显示课程详情。
在日期控制器中我有
/**
* Course
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\ITServicePN\ItspnKurse\Domain\Model\Kurse>
*/
protected $kurse = NULL;
/**
* Returns the Courses
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\ITServicePN\ItspnKurse\Domain\Model\Kurse> $kurse
*/
public function getKurse() {
return $this->kurse;
}
这使我在使用f:debug {date.kurse}:
时返回课程TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (1 items) ... => ITServicePN\ItspnKurse\Domain\Model\Kurseprototypepersistent entity (uid=8, pid=51)
title => 'The name of the course' ...
但是当我尝试访问{date.kurse.title}时,我遇到了TYPO3异常:
#1: PHP Warning: spl_object_hash() expects parameter 1 to be object, string given in /var/www/vhosts/it-service-pn.de/cetba/typo3_src-6.2.3/typo3/sysext/extbase/Classes/Persistence/ObjectStorage.php line 174
怎么做,用extbase和流体来正确获取父对象信息?
答案 0 :(得分:2)
根据您的模型,kurse
是一个ObjectStorage。这意味着当访问流体中的date.kurse
时,您将获得一个数组。
您可以使用for-Viewhelper
<f:for each="{date.kurse}" as="kurs">
Kurs: {kurs.title}
</f:for>
您还可以打印迭代索引以获取编号的库尔斯列表。
<f:for each="{date.kurse}" as="kurs" iteration="i">
{i.cycle}. Kurs: {kurs.title}
</f:for>