在Extbase 6.2中,不要将uid用于列表页面

乌尔斯

使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Extbase控制器中的正常功能

输出中的索引搜索extbase htmltags

在 Extbase 控制器中编辑页面的 Typoscript 设置

如何使用 extbase 获取 sys_language_uid

Typo3-用于调度程序任务的Extbase CommandController

extbase扩展中的相同模型,不同模板(和操作)

cli_dispatch.phpsh中的Datahandler(TCEmain)(Extbase命令)

TYPO3 extbase域模型中的虚拟属性?

在 TYPO3 9.5 LTS / Extbase 中扩展存储库

如何在Extbase中更新1:1关系

在PHP / TYPO3 Extbase中从ActionController调用CommandController

说 url (realurl) 链接未在 extbase 扩展中呈现

TYPO3 Extbase fe_user UID在自己的模型中

在extbase命令控制器中设置sys_language_uid

在extbase中,如何通过uid以外的其他值访问item

Typo3 6.x扩展缓存将extbase eID ajax数据传递给模态

列表视图中Extbase扩展排序记录中未捕获的JS错误

TYPO3 ExtBase-通过UID获取调度程序任务并执行

TYPO3 Extbase - 仅查询特定 uid 范围内的记录

TYPO3 Extbase-在单个视图中更改浏览器页面标题

如何使extbase存储库尊重映射到页面表的模型的l18n_cfg?

extbase(TYPO3)中用于数组第二级的setOrderings

如何从TYPO3 extbase中的模型类名称获取表名称?

如何在 TYPO3 8.x extbase 中获取禁用的实体?

Typo3 4.7基于extbase的扩展中的PHP错误“无法重新声明类”

extbase存储库:在其他lang中时访问defaultLang的引用数据记录

TYPO3 extbase在存储库(不是控制器)中创建URL

TYPO3 / Extbase如何在create action中创建唯一的条形?

如何在TYPO3中使用extbase执行join语句?