我正在尝试通过此代码$f = $resourceFactory->getFileObject($uid);
获取文件,但是问题是uid
是文件引用对象中的受保护字段,如下所示,因此我无法获取{ {1}}和uid
显然也不起作用。
那么我如何获取文件引用(FAL)的uid
getUid()
答案 0 :(得分:1)
假设您有一个TYPO3\CMS\Extbase\Domain\Model\FileReference
的实例,则可以使用getOriginalResource()
来获取包装好的TYPO3\CMS\Core\Resource\FileReference
。如果需要引用的文件,则可以使用getOriginalFile()
。因此,作为链式调用:
$file = $fileReference->getOriginalResource()->getOriginalFile();
请注意,您不必全部使用ResourceFactory
,这是内部处理的。
答案 1 :(得分:0)
从我这里来工作。
您可以使用自定义查询来查找或获取文件引用uid。
在控制器中:
$uid = $yourObject->getUid();
$fileReference = $this->yourRepository->getFileReferenceObject($uid);
在存储库中
public function getFileRefernceHeaderLogo($uid){
$query = $this->createQuery();
$queryString = "SELECT *
FROM sys_file_reference
WHERE deleted = 0
AND hidden = 0
AND tablenames='your_table_name'
AND fieldname='your_field_name'
AND uid_foreign =".$uid;
$query->statement($queryString);
return $res = $query->execute(true);
}
在控制器中
$fileRefUid = $fileReference[0]['uid'];
在这里您可以获取文件引用表的uid。这是一个漫长的过程。
您还可以为getFileObject.like获取sys_file表uid,
$sys_file_uid = $fileReference[0]['uid_local'];