使用Extbase的“显示”操作时:
<f:link.action action="show" arguments="{event : event}">
我想通过特殊列('customID')查找所述事件。
在实际TYPO3的uid不应该出现在URL(带或不带RealURL)。
原因是数据已导入,并且“真实” uid是“ customId”。
总是有@biesior的方法使用f:link.page
https://stackoverflow.com/a/26145125/160968 –但我想我会以官方方式尝试。
(如何)可以在extbase / fluid中做到这一点?
这个有可能。假设您的模型Event具有一个property customId
。因此,您可以像这样生成链接:
<f:link.action action="show" arguments="{event : event.customId}">
生成的链接将具有一个queryString,如下所示:
?tx_myext[event]=9999
扩展构建器生成的showAction期望传递事件的UID。然后,PropertyMapper自动获取对象并将其分配给视图:
/**
* action show
*
* @param \Your\Extension\Domain\Model\Event $event
* @return void
*/
public function showAction(\Your\Extension\Domain\Model\Event $event) {
$this->view->assign('event', $event);
}
但是在您的情况下,您无法通过UID提取对象,因为您传递了customId。因此,您需要自己获取对象:
/**
* action show
*
* @param integer $event
* @return void
*/
public function showAction($event) {
$event = $this->eventRepository->findOneByCustomId($event);
$this->view->assign('event', $event);
}
注释@param integer $event
告诉TYPO3,该参数“只是”一个整数。然后findOneByCustomId
,您可以从eventRepository中调用magic方法。findOne
表示您只需要一个Event
对象(而不是QueryResult
),而则ByCustomId
查询Event
模型的现有属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句