zf2 - 使用Zend \ Db \ TableGateway \ TableGateway加入;

时间:2013-02-04 00:21:41

标签: zend-framework2 tablegateway

我想使用zf2选择第一个和第二个表中的字段进行简单连接,但是当我尝试将一个字段数组放入columns方法时,我得到一个错误('语句无法执行')。 / p>

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);
    });  
...
}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

$select->columns(array('column_one', 'column_two', 'column_N'));

空白$select->columns();语句会生成类似SELECT FROM table_name的SQL查询,从而导致错误。

当您对此语句发表评论时,它会生成类似SELECT * FROM table_name的SQL查询 如果你传递列名,则用它们代替星号。