Zend framework2 zf2-使用using Zend\Db\TableGateway\TableGateway连接;

Zend framework2 zf2-使用using Zend\Db\TableGateway\TableGateway连接;,zend-framework2,tablegateway,Zend Framework2,Tablegateway,我想使用zf2从第一个表和第二个表中选择字段进行简单的联接,但当我尝试将字段数组放入columns方法时,会出现一个错误(“语句无法执行”) public function fetchAll() { $resultSet = $this->tableGateway->select(function (Select $select) { $select->columns();// ->with params gives an 'Statement c

我想使用zf2从第一个表和第二个表中选择字段进行简单的联接,但当我尝试将字段数组放入columns方法时,会出现一个错误(“语句无法执行”)

public function fetchAll()
{
    $resultSet = $this->tableGateway->select(function (Select $select) {
        $select->columns();// ->with params gives an 'Statement could not be executed'
        $select->join(array('t2' => 'categories'), 'table1.idCategory = t2.id');
        $select->order('dateTime DESC')->limit(100);
    });  
...
}

您需要确保dateTime/id字段位于您提供的列列表中


如果转储异常($e->GetTraceAString()),您将获得有关导致错误的原因的更多信息。

请对该语句进行注释或在数组中添加至少一个有效的“列”名称(表列/字段名)

一个空白的
$select->columns()语句生成类似于
selectfromtable\u name
的sql查询,这会导致错误

当您对该语句进行注释时,它会生成sql查询,如
SELECT*fromtable\u name

如果你传递列名,星号将被它们替换。

你可以在这里找到答案->你能展示一个你在返回异常时使用的例子吗?
$select->columns(array('column_one', 'column_two', 'column_N'));