TYPO3 4.5:如何读取查询中的约束

时间:2014-05-22 18:56:48

标签: typo3 extbase typo3-4.5

我需要使用REST服务才能将一些数据添加到插件中。为此,我使用以下命令覆盖了typoscript中的正常后端接口:

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核心以添加此功能不是一种选择。

我试图扩展Query Interface以在子类中添加此functionnality,然后在typoscript中覆盖该类,但后来意识到这将不够便携。我需要能够仅使用typo3 4.5本机功能访问查询约束。

1 个答案:

答案 0 :(得分:0)

我修好了。唯一需要做的是:

Tx_Extbase_Persistence_QueryInterface.className = Tx_MyExtension_Persistence_RestQuery


class Tx_MyExtension_Persistence_RestQuery extends Tx_Extbase_Persistence_Query implements Tx_MyExtension_Persistence_RestQueryInterface
{


}


interface Tx_MyExtension_Persistence_RestQueryInterface extends Tx_Extbase_Persistence_QueryInterface {

    public function getConstraint();

}