繁体   English   中英

如何使用TYPO3 extbase从子对象获取父信息

[英]How to get parent Information from child object with TYPO3 extbase

我有一个经典的课程和日期关系(一门课程有很多日期)。 接下来的课程将在页面上列出。 我使用按startDate排序的普通findAll()方法加载了所有日期。 现在,我需要上级课程信息才能显示课程详细信息。

在日期控制器中,我有

/**
 * 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和fluid正确地获取对象信息?

根据您的模型, kurse是一个ObjectStorage。 这意味着当访问流体中的date.kurse ,您将获得一个Array。 您可以使用for-Viewhelper在流体中迭代该数组

<f:for each="{date.kurse}" as="kurs">
    Kurs: {kurs.title}
</f:for>

您还可以打印迭代索引以获取编号的kurses列表。

<f:for each="{date.kurse}" as="kurs" iteration="i">
    {i.cycle}. Kurs: {kurs.title}
</f:for>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM