2013-02-04 41 views
0

我想做一个简单的连接,使用zf2从第一个和第二个表中选择字段,但是当我尝试将一个字段数组放入到列方法中时,我得到一个错误('Statement could not be executed')。zf2 - 使用Zend Db TableGateway TableGateway加入;

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

你可以在这里找到答案 - > http://stackoverflow.com/questions/14354802/tablegateway-with-multiple-from-tables/14371056#14371056 – Diemuzi

+0

你可以显示你正在使用的例子,当它返回异常? – Andrew

回答

0

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

如果您抛出异常($ e-> getTraceAsString()),您将获得更多关于导致错误的信息。

0

请对此语句发表评论在数组(表格列/字段名称)中添加至少一个有效的'列'名称。

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

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

当您评论此语句时,它会生成sql查询,如SELECT * FROM table_name ,如果您传递列名称,则会将其替换为星号。

相关问题