gpt4 book ai didi

typo3 - 在 Extbase 6.2 中,列表页面不再使用 uid

转载 作者:行者123 更新时间:2023-12-01 13:45:23 25 4
gpt4 key购买 nike

当使用 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 具有属性 customId .所以你生成你的链接是这样的:

<f:link.action action="show" arguments="{event : event.customId}">

生成的链接将有一个像这样的查询字符串:

?tx_myext[event]=9999

Extension Builder 生成的 showAction 期望传递事件的 UID。然后 PropertyMapper 自动获取对象并将其分配给 View :

/**
* 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来自您的事件存储库。 findOne表示您只需要一个 Event对象返回(而不是 QueryResult ),而 ByCustomId查询您的 Event 的现有属性模型。

关于typo3 - 在 Extbase 6.2 中,列表页面不再使用 uid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36405669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com