你有一个后端模块扩展来上传文件。我使用helhum fileupload作为参考。文件上传成功。但是表的文件字段更新了sys_file_reference的uid而不是no文件。为什么会这样?
<f:form.upload property="file" />
我的引用是this我在哪里可以在表和sys_file引用中设置表名和no_files
答案 0 :(得分:1)
属性&#34;文件&#34;我假设是一个1:1的关系,这就是为什么文件引用的UID被写入字段的原因。
如果属性是M:N或1:N表,你会看到文件的数量,如你所料 - 并且Extbase需要知道你想要一个包含FileReference对象的ObjectStorage。
关于主题,如果您执行findAll时Repository返回NULL,这几乎总是因为存储页面限制。要克服它,在返回之前覆盖createQuery并在查询上操作QuerySettings,设置respectStoragePageUids(false)。
答案 1 :(得分:0)
我找到了解决问题的方法。我的模特是
/**
* Sets the file
*
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $file
* @return void
*/
public function setFile(\TYPO3\CMS\Extbase\Domain\Model\FileReference $file = NULL)
{
$this->file = $file;
}
我从参数列表中删除了类型。现在它的工作正常。我的更新代码在下面
/**
* Sets the file
*
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $file
* @return void
*/
public function setFile($file = NULL)
{
$this->file = $file;
}