- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个基于 extbase/fluid 的简单扩展,它有一个在前端插件中上传表单。它在 6.0.4 中工作,但现在我明白了当我尝试上传文件时出现以下异常:
#1297759968: Exception while property mapping at property path "fichier":No converter found which can be used to convert from "array" to "string".
这个问题好像和web请求有关接收上传文件的数组,但模型将其存储为字符串。我怎样才能摆脱这个异常(exception)?我应该如何处理文件上传到 extbase?
扩展是使用 Extension Builder
启动的。 fichier
是模型中的字符串属性,包含上传文件的名称(位于 uploads/tx_myext/
)。该插件的模板包含一个从 form.upload
ViewHelper 构建的上传字段。在 TYPO3 6.0.4 上,当我提交表单时,我收到一个对象作为 createAction
函数的参数。从该对象,我调用 getFichier
返回上传文件的文件数组。然后,我可以提取原始文件名,将临时文件复制到正确的位置,并使用原始文件名设置 fichier
属性的值。
现在,在 TYPO3 6.1.0 中,我在进入 createAction
函数之前得到了上述异常。我的客人是 PropertyMapper 试图将文件数组转换为字符串以匹配 fichier
属性的类型。
我不知道它以前的工作方式是错误,还是现在的工作方式是错误。如果它真的按照预期的方式工作,我应该如何处理 extbase 扩展中的文件上传?
最佳答案
/**
* initialize actions
*/
public function initializeAction() {
if ($this->arguments->hasArgument('myModel')) {
$this->arguments->getArgument('myModel')->getPropertyMappingConfiguration()->setTargetTypeForSubProperty('upload', 'array');
}
}
http://www.typo3lexikon.de/typo3-tutorials/extensions/extbase/property-mapper.html
关于TYPO3:如何使用extbase上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16405963/
在我的 extbase/fluid 项目中,除了创建、删除、列表等标准操作之外,我还想创建存储在存储库中的模型类对象的副本。使用 findall(),所有对象都显示在列表中,并且相应的操作(例如删除、
创建模型并将其添加到存储库后,我希望拥有用于不同目的的新 ID(创建邮件、更新 Extbase 世界之外的其他字段) $page = t3lib_div::makeInstance('Tx_MyExt
我就是不能 findAll()即使我能够通过 findByUid() 访问特定记录,也可以返回任何内容。 我已记录(并尝试解决/设置)typoscript solution和 record stora
如何在extbase扩展 Controller 中获取当前页面的uri?如果我需要通过电子邮件发送当前 uri 或将其保存到数据库以供以后使用或统计。 最佳答案 您可以使用这一行: $this->ur
我需要获取实际的“一般记录存储页面 ID”。我发现了以下代码片段,但即使在页面上设置了 storagePid,该变量也是空的。 $config = $this->configurationManage
如何在前端获取隐藏记录?想要获取隐藏记录,然后将隐藏更改为 0。 最佳答案 您可以在存储库中为单一方法进行此设置: namespace Vendor\ExtensionName\Domain\Repo
当我的 Extbase 域对象之一从 TYPO3 后端的 ListView 中删除时,我想执行一些单独的代码。 认为它可以通过覆盖相应存储库中的 remove( $o ) 方法来工作,例如 publ
我已经扩展了 pages 表,现在我想使用名为“Tags”的域对象中的一些数据。 所以我在 /Configuration/TypoScript/setup.txt 中尝试了以下内容: plugin.m
我有一个域对象 Foo,它与域对象 Bar 有 1:n 的关系。 有两个主要用例,我需要让所有 foo 匹配某个标准。在情况 A 中,我关心连接到每个 foo 的条,在情况 B 中,我不关心。有相当多
我有自己的扩展,它有 Controller 和两个 Action :listAction 和 showAction。 问题:我可以在同一个页面显示两个 Action 吗? 在特定页面上,我用自己的插件
我正在尝试使用三个额外的日期(时间戳)字段来扩展扩展(新闻),并希望在我的(新闻)流体模板中调用这些字段。 到目前为止,我已经连接了所有内容,我可以在后端看到我的额外字段,而无需选择额外类型 - 我已
我有自己的扩展,它有 Controller 和两个 Action :listAction 和 showAction。 问题:我可以在同一个页面显示两个 Action 吗? 在特定页面上,我用自己的插件
我正在尝试创建一个对象,但值没有存储到数据库中。这是在“索引”操作上完成的,因为插件是通过 TypoScript 插入的,实际上并不创建输出。所以在调用 Action 时没有给出对象,这就是为什么我自
是否可以比较查询 api 中的两个数据库字段?例如,我想比较 tstamp 和 crdate 字段,例如: SELECT * FROM tt_content WHERE tstamp > crdate
在我的 extbase Controller 操作中,我想在上传文件后重定向到另一个 Controller /操作,因此我调用 $this->redirect('index', 'Download',
我有一个带有两个插件的扩展,我需要从这两个插件访问 getVars。 $this->request->getArguments(); 当然,上面的代码只给了我当前插件中的变量。 有人知道我如何从不同的
我尝试将事件的开始日期与当前日期进行比较,以便仅显示下一个事件。这是我在 eventRepository 中的尝试: public function findNext() { $query =
我正在使用 TYPO3 7.6.11 和 indexed_search 7.6.0。 我将 extbase 插件用于 indexed_search 并在输出中转义 HTML 标签以标记搜索词。例如,当
刚开始使用第一个 extbase 扩展。在 localconf 中,我添加了以下操作:“列表、新建、显示、创建、编辑”。 默认是“创建”重定向到没有参数的“列表”,并且在创建扩展后就可以正常工作。 $
我有一个扩展,我想在其中包含一些过滤器,我知道我可以使用 findBy 过滤我的 listAction() 显示的结果>. 我测试了它,它是这样工作的: $cars = $this->carRepos
我是一名优秀的程序员,十分优秀!