我需要使用 REST 服务来获取一些数据到插件。为此,我使用以下命令覆盖了打字稿中的正常后端接口:
objects.Tx_Extbase_Persistence_Storage_BackendInterface.className = Tx_extensionname_Persistence_Storage_RestBackend
然后,当我使用以下方法时,此 BackendInterface 会在我的存储库中返回查询对象:
前任:
$query = $this->createQuery();
$query = $query->execute()->toArray();
在这里,$query 将来自服务的响应保存为 TYPO3 Tx_Extbase_Persistence_QueryInterface 对象。
问题是我需要能够在传递 ID 参数时调用服务(使用 /ID 附加到端点)。理想情况下,我会这样做,这样这个 repo 函数(在控制器中调用)会返回我想要的:
public function findById( $id ) {
$query = $this->createQuery();
$query->matching($query->equals('id', $id));
return $query->execute()->toArray();
}
问题是我需要能够访问我的 Tx_extensionname_Persistence_Storage_RestBackend 中的查询约束。通常,我会使用 '$query->getConstraint()' 方法。但是,我们使用的是typo3 4.5,并且尚未为Tx_Extbase_Persistence_QueryInterface 定义此函数。
修改typo3核心以添加此功能不是一种选择。
我尝试扩展查询接口以在子类中添加此功能,以便在打字稿中覆盖该类,但后来意识到这不够可移植。我需要能够仅使用typo3 4.5 本机功能访问查询约束。