问题标签 [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.
orm - Extbase:在运行时选择延迟加载或急切加载
我有一个与域对象 Bar 具有 1:n 关系的域对象 Foo。
有两个主要用例,我需要让所有 foo 匹配某个标准。在情况 A 中,我关心附加到每个 foo 的条,在情况 B 中,我不关心。有很多条,所以总是加载条不利于案例 A 的性能。类似地,不急切地加载条会在案例 B 中导致 n+1 雪崩。所以既不将 realtion 标记为@Lazy也不标记它是正确的选择。
现在,我的问题是:是否可以在查询时告诉 extbase 持久层是懒惰还是急切?如果是,如何?如果不是,Extbase 中是否有另一种方法来避免 n+1 问题(即加载所有必要的柱,然后希望在迭代 foo 时缓存起作用)?
当然,我最后的手段是使用延迟加载加载 foos,在第二个查询中手动加载条形图,然后手动设置关系。
有什么建议么?
validation - 从验证通知中抑制typo3中的技术验证错误消息
嗨,我尝试在表单验证后收到很好的错误消息。我使用extbase和Fluid生成一个简单的实体,其中包含一个名称和一个需要输入字符串的电子邮件字段。我没有改变任何东西。我只是使用扩展生成器生成的代码。
如果我将字段留空,我会收到以下验证错误通知:
后两行还可以,但我无法摆脱第一行中的技术通知,这绝对不是我想向用户展示的内容。
谢谢您的帮助!
附录:刚刚发现,这是一个“闪信”。但我不想删除来自模板,因为它也可以作为用户的积极反馈源提供信息,例如“地址已成功存储”。
附录:生成并使用代码进行测试:
新建.html 模板
AdressController.php控制器:
Adresse.php模型:
php - Typ3 4.6:根据工作空间获取相关模型
我有两个表、两个模型和两个存储库。
- 部分
- 常见问题
常见问题解答属于部分(一个部分有许多常见问题解答)。这种关系是通过将部分 uid 存储在 faq 中来完成的。
在我的模板中,我正在做:
其中显示该部分中的常见问题解答。
作为普通用户,这在前端按预期工作。
但是,当我在 DRAFT 工作区中预览页面时。不显示任何草稿常见问题解答问题。我只能看到实时工作区中的常见问题解答。但是,我可以查看草稿工作区中的部分。
常见问题和部分之间的关系有问题。
如何在草稿工作区部分显示常见问题解答?
typo3 - 如何调试 Extbase 中的依赖注入错误?
我正在 Extbase 中构建一个扩展(最新版本,最新的typo3),并且我的模型中注入了存储库。
这根本行不通。没有错误,没有线索,什么都没有。inject* 方法根本不会被调用。完全相同的 Injection 在控制器中工作。
是否可以将存储库注入 Extbase 中的模型?一般来说,从 1.4 开始可以注入模型。
我该如何调试呢?我必须在哪里看?
jquery - TYPO3 extbase - jquery 的流体变量
如何将一个流体变量从控制器传递给 jQuery 或 JavaScript?
在我的控制器内部:
在流体内部,我将变量用作 {tab} 但如何传递给 JavaScript?任何帮助,将不胜感激...
extbase - 保存 ExtBase 模型后如何获取 ID?
创建模型并将其添加到存储库后,我希望将新 ID 用于不同目的(创建邮件,更新 Extbase 世界之外的其他字段)
此时$page
还没有ID,uid为null。
它什么时候得到它?我怎样才能在运行时检索?
php - Extbase 中已删除 ModelInstance 上的 deleteAction 失败
例如,删除链接被点击了两次或来自不同的用户。虽然第一次单击将正确删除我的对象,但第二次单击将在调用 deleteAction 之前失败(因为它已过时)。我怎样才能防止这种情况?
我得到一个例外:
该值必须属于“Tx_MyExt_Domain_Model_Download”类型,但属于“NULL”类型。
在 action 中做某事并没有帮助,因为它之前失败了……</p>
ajax - 如何在我的 TYPO3 Extbase 扩展中获得 AJAX 调用?
我在这样做时遇到了麻烦,我一直在寻找一些手册,但它们似乎对我不起作用(它们要么不够详细,要么我太愚蠢,可能两者兼而有之)。
所以我想通过某个事件从我的 Fluid View HTML 文件开始一个 AJAX 调用,然后它应该在某个控制器中执行操作并返回一些值(目前任何值都可以,我似乎无法得到当涉及到 Extbase 中的 AJAX 时,任何可以在这里工作的东西)。
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
- 如果它只是一个很小的帮助库,它的目的是存储在 {PackageRoot}/Resources/PHP/{libraryName} 中并通过 require 包含在内。然而,这是否被问题所怀疑?
- 如果 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()和通过对象管理器创建原型对象的部分
typo3 - TYPO3 Extbase storagePid
我需要获取实际的“一般记录存储页面 id”。我找到了以下代码片段,但即使在页面上设置了 storagePid,变量也是空的。
任何帮助,将不胜感激