TYPO3 - 调用另一个存储库

2023-11-25

是否可以在不同的控制器中调用一个函数?我需要打电话FindByCategoryGrouped($catId)在 designRepository.php 和getCategories($catId)来自categoryRepository.php

public function listAction() {
    $this->settings['flexform']['showCategory'] ? $catId = $this->settings['flexform']['showCategory']:$catId = $this->settings['listView']['showCategory'];
    // print $catId;
    if (!$catId || $this->settings['flexform']['showCategory'] == '-1') {
        $designs = $this->designRepository->findAll(); 
    } else {
        // $designs = $this->designRepository->findByCategory($catId);
        $designs = $this->designRepository->findByCategoryGrouped($catId);  // THIS
        $categories = $this->categoryRepository->getCategories($catId); // THIS
    }
    // indhold forsvinder hvis næste linje slettes
    $this->view->assign('designs', $designs, "L", $GLOBALS['TSFE']->sys_language_uid);
    $this->view->assign('catId', $catId);
    $this->view->assign('categories', $categories);
}

您可以注入每个已安装的 extbase 扩展的每个存储库。只需将依赖项注入代码添加到您的控制器即可。根据您的 TYPO3 版本,可以是:

打字3 >= 6.0:

/**
 * @var \Vendor\Extension\Domain\Repository\SomeRepository
 * @inject
 */
protected $someRepository;

请注意,@inject与专用注入方法相比,注释的性能不太好。因此,如果您需要调整应用程序的性能并在 yout 控制器中进行多次注入,您应该考虑切换到注入方法:

/**
 * @var \Vendor\Extension\Domain\Repository\SomeRepository
 */
protected $someRepository;

/**
 * @param \Vendor\Extension\Domain\Repository\SomeRepository
 */
public function injectSomeRepository(\Vendor\Extension\Domain\Repository\SomeRepository $someRepository) {
  $this->someRepository = $someRepository;
}

打字3 = 4.7:

/**
 * @var Tx_MyExtension_Domain_Repository_SomeRepository
 * @inject
 */
 protected $someRepository;

错别字3

/**
 * @var Tx_MyExtension_Domain_Repository_SomeRepository
 */
 protected $someRepository;

/**
 * Inject SomeRepository
 * @param Tx_MyExtension_Domain_Repository_SomeRepository $someRepository
 * @return void
 */
public function injectSomeRepository(Tx_MyExtension_Domain_Repository_SomeRepository $someRepository) {
  $this->someRepository = $someRepository;
}

在任何情况下你都可以使用$this->someRepository以及您将存储库注入到的控制器中的所有方法。

编辑:修正错字。

Edit: 添加依赖注入后,你必须清除缓存!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TYPO3 - 调用另一个存储库 的相关文章

  • 如何在 Zend Framework 3 中注册自定义表单视图助手

    我正在将继承的 Zend Framework 2 应用程序迁移到 Zend Framework 3 并且在注册自定义表单视图助手时遇到了一些困难 这些助手在应用程序使用版本 2 时起作用 主要用于添加标签属性以实现可访问性 例如 这是一个自
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 图像随机损坏(但刷新后加载)并显示“资源解释为图像但使用 MIME 类型 text/html 传输”

    我目前正在开发一个简单的 php 网站 问题是 我的整个网站中的图像 发生在所有 php 文件中 随机损坏并显示错误资源解释为图像 但以 MIME 类型 text html 传输但是 如果我尝试多次刷新页面 可以再次加载图像并且错误消失 我
  • 按文件名对 $_FILES 进行排序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 他俩 如您所知 在新的 HTML5 中 您可以非常轻松地上传多个文件 但我这里的问题是如何按列 名称 对 FILES 数组进行排序 这是
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • Yii2 - 错误请求 (#400) |前端和后端cookie

    仅当我打开时才会出现此问题frontend and backend在相同的browser 设想 与后端交互 gt 切换选项卡 gt 与前端交互 gt 切换选项卡返回 gt 与后端交互 gt 错误请求 400 Cookie 后端 identi
  • PHP - 如何获取主要 HTML 内容,例如 Firefox 中的阅读器模式

    在 android Firefox 应用程序和 safari iPad 中 我们只能通过 阅读器模式 阅读主要内容 阅读更多 http support mozilla org en US kb how enable reader mode
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 使用 XPATH(和 PHP)从样式属性中选择背景 url

    我只想从此背景图像样式属性中选择 url 这可以通过 XPATH 实现吗 a href http www test com style background image none test a 我有类似的东西 url xpath gt qu
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4

随机推荐

  • 选择和悬停覆盖 SWT 表组件中的单元格背景颜色

    我正在使用 SWT 和 Eclipse RCP 来呈现表格 我的问题是 如果我更改单元格 实际上是 ViewerCell 的背景 我可以看到它具有新的颜色 我的问题是 如果我在表中选择一行 或者将鼠标悬停在包含相关单元格的行上 则选择 悬停
  • 如何将两个列表合并为一个列表?

    I have a 1 2 b a b I want c 1 a 2 b j for i in zip a b for j in i
  • 如何在 Django/python 中每行循环三列?

    我想在 for 期间显示数据 每行三列 我希望我的结果如下所示 table tr td VALUE1 td td VALUE2 td td VALUE3 td tr tr td VALUE4 td lt td VALUE5 td td VA
  • 如何在 Swift 中制作引脚注释标注?

    我试图让标注工作 但没有发生 因为我在准备继续时做错了 我想知道如何能够对另一个视图进行引脚注释标注 当点击标注中的按钮时 跳转到另一个场景的过程如下 Set the delegate地图视图作为视图控制器 您可以在 Interface B
  • 包含所有私有成员的类可以是 POD 类吗?

    我之前听说过 POD 类型不能有私有数据 但根据 C 0x 草案 我的要求更宽松 强调我的 has the 相同的访问控制 第 11 条 对于所有非静态数据成员 这似乎表明私有数据只要是私有的就可以 我没有 C 03 的副本来检查 那么 W
  • 在完整框架 4.7 项目上添加对 .NET Core 2.0 DLL 的引用

    我在这里寻找这个问题但没有找到答案 我有一个针对 NET Core 2 0 的类库项目和一个针对 NET Full Framework 4 7 的 WPF 项目 我无法引用 WPF 项目上的类库 我收到以下错误 项目 xxxxxxxx 的目
  • 如何使用 IIS7 修复 CSS 文件内链接的 URL 重写

    我正在尝试为家里的朋友设置代理服务器 我目前正在关注网站上的教程 http blogs iis net carlosag archive 2010 04 01 setting up a reverse proxy using iis url
  • 将 NSTimer 的触发时间重置为从现在开始而不是上次触发

    我有一个NSTimer以 3 秒的间隔触发以减少值 当我执行增加该值的操作时 我想重新启动计时器 从该点开始计时 3 秒 例如 如果我增加该值并且计时器将在 1 秒内触发 我想更改它并让计时器在 3 秒内触发 我可以使计时器无效并重新创建它
  • 从Python中独立于操作系统的位置加载配置文件

    在Linux下我把我的配置放在 programname 中 我应该将其放置在 Windows 中的什么位置 在 python 中打开独立于操作系统的配置文件的推荐方法是什么 谢谢 内森 在 Windows 上 您将其存储在os enviro
  • 如何制作一个通过其他两个枚举器进行延迟迭代的 ruby​​ 枚举器?

    假设我有两个枚举器 enum1 and enum2必须延迟迭代 因为它们有副作用 如何构造第三个枚举器enum3 where enum3 each x x would lazily返回相当于enum1 enum2 在我的现实用例中 我正在流
  • 正确使用JTidy净化HTML

    我正在尝试使用 JTidy jtidy r938 jar 来清理输入 HTML 字符串 但我似乎无法正确设置默认设置 通常 诸如 hello world 之类的字符串在整理后最终会变成 helloworld 我想展示我在这里所做的事情 任何
  • 缓存一致性协议如何强制原子性?

    我知道原子性可以在诸如xsub 不使用LOCK前缀 依靠缓存一致性协议 MESI MESIF 1 缓存一致性协议如何做到这一点 这让我想知道缓存一致性协议是否可以强制原子性 为什么我们需要特殊的原子类型 指令等 2 如果MOSI实现跨多核系
  • Ruby on Rails+PostgreSQL:自定义序列的使用

    假设我有一个模型叫Transaction其中有一个 transaction code属性 我希望该属性自动填充一个序列号 该序列号可能不同于id 例如 与id 1可以有transaction code 1000 我尝试在 postgres
  • 是否有一个不使用回调的 $getJSON 版本?

    我正在为 3rdParty javascript 库实现回调 我需要返回该值 但我需要从服务器获取该值 我需要做这样的事情 3rdPartyObject getCustomValue function return getJSON myUr
  • 表视图控制器每一行连接到不同的视图控制器

    我正在尝试开发一个表视图控制器 其中行连接到多个View Controllers 文本字段 文本视图 表格视图 日期选择器 图像视图等 因此 如果我单击任何行 它应该打开Intermediate View并将适当的控制器放置在一个公共位置
  • Common Lisp 中对象的内存使用情况

    有没有办法找出类或基本数据类型的实例一般使用了多少内存 我在 cl 中有一个玩具网络框架 它使用代表 html 标签及其属性的类实例创建和管理网页 并且由于它们应该创建一个 html 页面 因此它们在称为 children 的插槽中拥有子级
  • 寻找一种方法来动态添加更多列表到 jQuery Mobile 列表视图的底部

    我正在寻找一种在向下滚动后将更多列表添加到列表视图底部的方法 例如 我最初退货了 20 件商品 我打算使用分页 只返回从查询中返回的尽可能多的内容 但我宁愿返回 15 20 然后在滚动结束时自动向此列表添加更多内容 或者有一个按钮显示 查看
  • Angular 2 rc3 路由器弃用包问题

    欢迎 Angular 2 rc 3 I use project json from 5 分钟快速入门配置我的项目 但是当我运行时npm install我收到以下错误 No compatible version found angular e
  • C++20 范围适配器的递归应用导致编译时无限循环

    C 20 中的范围库支持表达式 auto view r std views drop n 删除第一个n范围的元素r与范围适配器drop 但是 如果我递归地从范围中删除元素 编译器将进入无限循环 最小工作示例 在 GCC 10 中编译需要无限
  • TYPO3 - 调用另一个存储库

    是否可以在不同的控制器中调用一个函数 我需要打电话FindByCategoryGrouped catId 在 designRepository php 和getCategories catId 来自categoryRepository ph