问题标签 [extbase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1489 浏览

orm - Extbase:在运行时选择延迟加载或急切加载

我有一个与域对象 Bar 具有 1:n 关系的域对象 Foo。

有两个主要用例,我需要让所有 foo 匹配某个标准。在情况 A 中,我关心附加到每个 foo 的条,在情况 B 中,我不关心。有很多条,所以总是加载条不利于案例 A 的性能。类似地,不急切地加载条会在案例 B 中导致 n+1 雪崩。所以既不将 realtion 标记为@Lazy也不标记它是正确的选择。

现在,我的问题是:是否可以在查询时告诉 extbase 持久层是懒惰还是急切?如果是,如何?如果不是,Extbase 中是否有另一种方法来避免 n+1 问题(即加载所有必要的柱,然后希望在迭代 foo 时缓存起作用)?

当然,我最后的手段是使用延迟加载加载 foos,在第二个查询中手动加载条形图,然后手动设置关系。

有什么建议么?

0 投票
1 回答
2280 浏览

validation - 从验证通知中抑制typo3中的技术验证错误消息

嗨,我尝试在表单验证后收到很好的错误消息。我使用extbaseFluid生成一个简单的实体,其中包含一个名称和一个需要输入字符串的电子邮件字段。我没有改变任何东西。我只是使用扩展生成器生成的代码。

如果我将字段留空,我会收到以下验证错误通知:

后两行还可以,但我无法摆脱第一行中的技术通知,这绝对不是我想向用户展示的内容。

谢谢您的帮助!

附录:刚刚发现,这是一个“闪信”。但我不想删除来自模板,因为它也可以作为用户的积极反馈源提供信息,例如“地址已成功存储”。

附录:生成并使用代码进行测试:

新建.html 模板

AdressController.php控制器:

Adresse.php模型:

0 投票
2 回答
326 浏览

php - Typ3 4.6:根据工作空间获取相关模型

我有两个表、两个模型和两个存储库。

  1. 部分
  2. 常见问题

常见问题解答属于部分(一个部分有许多常见问题解答)。这种关系是通过将部分 uid 存储在 faq 中来完成的。

在我的模板中,我正在做:

其中显示该部分中的常见问题解答。

作为普通用户,这在前端按预期工作。

但是,当我在 DRAFT 工作区中预览页面时。不显示任何草稿常见问题解答问题。我只能看到实时工作区中的常见问题解答。但是,我可以查看草稿工作区中的部分。

常见问题和部分之间的关​​系有问题。

如何在草稿工作区部分显示常见问题解答?

0 投票
2 回答
1772 浏览

typo3 - 如何调试 Extbase 中的依赖注入错误?

我正在 Extbase 中构建一个扩展(最新版本,最新的typo3),并且我的模型中注入了存储库。

这根本行不通。没有错误,没有线索,什么都没有。inject* 方法根本不会被调用。完全相同的 Injection 在控制器中工作。

是否可以将存储库注入 Extbase 中的模型?一般来说,从 1.4 开始可以注入模型。

我该如何调试呢?我必须在哪里看?

0 投票
6 回答
7232 浏览

jquery - TYPO3 extbase - jquery 的流体变量

如何将一个流体变量从控制器传递给 jQuery 或 JavaScript?

在我的控制器内部:

在流体内部,我将变量用作 {tab} 但如何传递给 JavaScript?任何帮助,将不胜感激...

0 投票
2 回答
6120 浏览

extbase - 保存 ExtBase 模型后如何获取 ID?

创建模型并将其添加到存储库后,我希望将新 ID 用于不同目的(创建邮件,更新 Extbase 世界之外的其他字段)

此时$page还没有ID,uid为null。

它什么时候得到它?我怎样才能在运行时检索?

0 投票
1 回答
1286 浏览

php - Extbase 中已删除 ModelInstance 上的 deleteAction 失败

例如,删除链接被点击了两次或来自不同的用户。虽然第一次单击将正确删除我的对象,但第二次单击将在调用 deleteAction 之前失败(因为它已过时)。我怎样才能防止这种情况?

我得到一个例外:

该值必须属于“Tx_MyExt_Domain_Model_Download”类型,但属于“NULL”类型。

在 action 中做某​​事并没有帮助,因为它之前失败了……</p>

0 投票
2 回答
4328 浏览

ajax - 如何在我的 TYPO3 Extbase 扩展中获得 AJAX 调用?

我在这样做时遇到了麻烦,我一直在寻找一些手册,但它们似乎对我不起作用(它们要么不够详细,要么我太愚蠢,可能两者兼而有之)。

所以我想通过某个事件从我的 Fluid View HTML 文件开始一个 AJAX 调用,然后它应该在某个控制器中执行操作并返回一些值(目前任何值都可以,我似乎无法得到当涉及到 Extbase 中的 AJAX 时,任何可以在这里工作的东西)。

0 投票
2 回答
9243 浏览

dependency-injection - 如何在 TYPO3 Extbase 扩展中包含或自动加载外部库?+ 依赖注入?

我正在使用 Extbase 1.4 开发一个 TYPO3 4.6 扩展,并且我试图包含一个外部库。该库,在我的例子中是facebook PHP SDK,位于$_EXTKEY/Resources/PHP/facebook-php-sdk/facebook.php. 我希望库在我需要的地方自动加载并自动注入(Dependecy Injection)。

我在网上找到的一些评论建议应该包含带有 require_once() 的库:

http://forge.typo3.org/issues/33142

  1. 如果它只是一个很小的帮助库,它的目的是存储在 {PackageRoot}/Resources/PHP/{libraryName} 中并通过 require 包含在内。然而,这是否被问题所怀疑?
  2. 如果 FLOW3 包主要代表外部库,就像 Imagine 或 Swift 包中的情况一样,则库代码直接放在 {PackageRoot}/Classes 之下。”

http://lists.typo3.org/pipermail/typo3-project-typo3v4mvc/2011-July/009946.html

“我会在特定操作中包含类(使用 require_once)来处理这个问题。这样您就可以访问这些函数,并且该类成为您的库。”

我试过了,它的工作原理是这样的:

但是我怎样才能让它自动加载并使用 injectFacebook 函数自动注入库呢?

编辑:

就像@alex_schnitzler@sorenmalling提到的自动加载一样:

@PeterTheOne 将所有文件放在 ext_autoload.php 中,然后使用 DI 或对象管理器。

@PeterTheOne 将类定义放入扩展中的 ext_autoload.php 中?

我试过这样(文件:ext_autoload.php):

它似乎找到并包含正确的文件。但是当我尝试用户依赖注入(如彼得回答)时,我收到一个错误:

没有传递正确的构造函数依赖信息数组!

在第 247 行的文件 /var/syscp/webs/web1/dev/typo3_src-4.5.15/typo3/sysext/extbase/Classes/Object/Container/Container.php 中引发了 InvalidArgumentException。

我认为这是因为 Facebook 类的构造函数有一个必需的 $config 参数。

编辑2:

我做了彼得在他的回答中所说的,在@alex_schnitzler@sorenmalling的帮助下,他们将我指向 ObjectManager,我的 FacebookService 现在看起来像这样:

如需更多帮助,请阅读: http: //forge.typo3.org/projects/typo3v4-mvc/wiki/Dependency_Injection_(DI)关于initializeObject()通过对象管理器创建原型对象的部分

0 投票
1 回答
7334 浏览

typo3 - TYPO3 Extbase storagePid

我需要获取实际的“一般记录存储页面 id”。我找到了以下代码片段,但即使在页面上设置了 storagePid,变量也是空的。

任何帮助,将不胜感激