ZF2结果集与组合

时间:2018-04-23 12:56:08

标签: zend-framework2

我遇到了从“Combine”对象获取结果的麻烦,因为它不再是“选择”对象。

我需要UNION 4选择对象,这仅适用于Zend Framework的Combine类,因为Select类的combine()方法仅支持联合两个选择对象。

我可以获取sql字符串,然后获取结果集,但是当我需要将其重新转换为字符串以获取结果时,我是以zf2样式构建sql的?

我还希望将所有联合选择放入一个选择中,如

(new Sql($adapter))->select()->from(['x' => $combinedSelects]);

然后它说

  

“类Zend \ Db \ Sql \ Combine的对象无法转换为字符串”

有什么想法吗?

编辑:

为了更好地理解我遇到的问题:

$select = $this->tableGateway->getSql()->select();
$select1 = ...
$select2 = ...
$select3 = ...

$combine = new Combine([
    $select1,
    $select2,
    $select3
]);

$combinedSelects = $combine->union($select)

这就是我的问题开始的地方: 现在我做:

$sql = $combinedSelects->getSqlString($platform); 

获取sql字符串,然后将其放入一个新变量,如:

$sql = "SELECT * FROM ( $sql ) AS x";

但我想要像上面提到的那样:

$sql = (new Sql($adapter))->select()->from(['x' => $combinedSelects]);

以便我可以使用:

$resultSet = $this->tableGateway->selectWith($sql);

而不是:

$resultSet = $adapter->query($sql, []);

希望这有助于更多地识别我的问题

0 个答案:

没有答案