当前位置: 首页 > 知识库问答 >
问题:

Typo3:以隐藏记录作为参数的控制器操作

於宏大
2023-03-14

我目前正在尝试在Typo3 v10中获得一个扩展,它使用户能够显示、编辑、更新、禁用和启用其他用户帐户。

不幸的是,我遇到了一个问题,我不能使用禁用用户作为操作的参数:

/**
 * Save user changes
 *
 * @param \Company\MyExtension\Domain\FeUser $feuser
 * @return void
 */
public function updateAction(\Company\MyExtension\Domain\FeUser $feuser): void {}

这将导致以下错误:找不到标识为“3”的\Company\MyExtension\Domain\FeUser类型的对象

从我收集的信息来看,extbase不依赖于存储库的默认查询设置来创建对象,而是使用持久性管理器::createQueryForType通过QueryFactory::create获取查询设置。这也是一些错误报告中列出的问题。

关于如何使用自定义QueryFactory为我的扩展设置不同的默认QuerySettings,有一些建议,但是这似乎在Typo3 v10中不再起作用,至少我的自定义QueryFactory在注册后没有被使用。。。另外,如果这样做可行,它会不会对通过控制器操作实例化的所有对象使用新的QueryFactory,而不仅仅是这个扩展?

如何使用Typo3 v10正确处理隐藏用户我的扩展。4.

另外,另一个建议是通过初始化尽早获取对象,但这只有在涉及未修改的模型时才有效,而不是在为对象设置新值时,因为它最终只会加载数据库值。。。


共有2个答案

刁冠宇
2023-03-14

我假设你也需要这个网址。如果你想看的话,我在这里给了你一个答案。

在网页前端工程师(TYPO3)中显示、编辑和更新隐藏记录

你也可以根据自己的需要调整它。

顺致敬意,

傅树
2023-03-14

在此处查看扩展“新闻”的处理方式:

        if ($news === null || $this->settings['isShortcut']) {
            $previewNewsId = ((int)$this->settings['singleNews'] > 0) ? $this->settings['singleNews'] : 0;
            if ($this->request->hasArgument('news_preview')) {
                $previewNewsId = (int)$this->request->getArgument('news_preview');
            }

            if ($previewNewsId > 0) {
                if ($this->isPreviewOfHiddenRecordsEnabled()) {
                    $news = $this->newsRepository->findByUid($previewNewsId, false);
                } else {
                    $news = $this->newsRepository->findByUid($previewNewsId);
                }
            }
        }

https://github.com/georgringer/news/blob/master/Classes/Controller/NewsController.php#L338

 类似资料:
  • 我正在更新一个在TYPO3 v10或更高版本中使用的扩展,并且有一个常规表达式验证器的问题,我不知道如何在v10或更高版本中运行。尝试了以下方法: 但我有以下例外: 我做错了什么以及如何修复它,或者对于操作参数的RegularExpression验证器现在的正确定义是什么?

  • 问题内容: 我在Controller内部有一个Action函数,该函数被AJAX调用。该操作采用1个参数。在客户端,我构造了一个JSON对象,该对象应序列化为该1参数。我遇到的问题是参数类被声明为抽象。因此,它不能被实例化。 当AJAX击中该动作时,我得到以下信息: 无法创建抽象类。 堆栈跟踪: [MissingMethodException:无法创建抽象类。] System.RuntimeTyp

  • 假设我有一个名为的扩展,my_extension一个名为的插件。 然后,我的控制器中有一个名为的函数。 如何通过通常的http GET请求从外部调用此?

  • 在ExtensionBuilder的帮助下,我为TYPO3(7.6.15)创建了一个简单的后端模块。和具有、和。只有,它是模块的主视图,应该如下所示: 现在,我想从,如果可能的话,我希望在视图的模板()中执行此操作。 我感谢所有的帮助,并预祝大家有一个美好的一天!

  • 在TYPO3 v9之前,可以将相应控制器操作的控制器和流体模板放入如下子文件夹: 类/控制器/产品/CarController.php ext_localconf.php 由于控制器名称“Product\Cars”,相对流体模板路径将解析为: 在TYPO3 v10中,这不再有效。我想这是因为现在你应该给出一个完全限定的控制器名称,如下所示: ext_localconf.php 现在,TYPO3仅尝

  • 假设您正在为产品新的功能编写/实现代码,当正在编写代码时,突然出现软件客户端升级。这时,您必须将新编写的功能代码保留几个小时然后去处理升级的问题。在这段时间内不能提交代码,也不能丢弃您的代码更改。 所以需要一些临时等待一段时间,您可以存储部分更改,然后再提交它。 在Git中,隐藏操作将使您能够修改跟踪文件,阶段更改,并将其保存在一系列未完成的更改中,并可以随时重新应用。 现在,要切换分支以进行客户