zend2 mysql - 使用 TableGateway 加入 table

zend2 mysql - joining table using TableGateway

我想从两个 mySql tables:

获取数据
SELECT L.id AS 'l_id', L.date, L.action, U.id AS 'u_id', U.name, U.surname 
FROM cases_log L, users U 
WHERE L.user = U.id 
LIMIT 0,30

所以,我决定使用 $select->join,但它无法按我想要的方式工作。它仅从 cases_log table.

获取数据
SELECT * 
FROM `cases_log` 
JOIN users 
ON users.id = cases_log.user 

Module.php:

'HistoryTable' =>  function($sm) 
{
    $tableGateway = $sm->get('HistoryTableGateway');
    $table = new HistoryTable($tableGateway);
    return $table;
},
'HistoryTableGateway' => function ($sm) 
{
    $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
    $resultSetPrototype = new ResultSet();
    $resultSetPrototype->setArrayObjectPrototype(new History());
    return new TableGateway('cases_log', $dbAdapter, null, $resultSetPrototype);
},

HistoryTable.php:

$table = $this->tableGateway;
$select = $table->getSql()->select();
//$select->from(array('L' => 'cases_log'))->join(array('U' => 'users'),'L.user = U.id');
$select->join('users', 'users.id = cases_log.user');

$select->limit(10);
$select->offset(0);         
$resultSet = $table->selectWith($select);

return $resultSet;

如您所见,在注释行中,我尝试在 $select->from 中执行某些操作 - 但没有结果,因为 $select->from 是只读的。 ..

我是 ZF2 的新手,所以我可能错过了一些东西?

$table = $this->tableGateway;
$select = $table->getSql()->select();
$select->columns(['l_id' => 'id', 'date', 'action']);
$select->join('users', 'users.id = cases_log.user', ['u_id' => 'id', 'name', 'surname']);
$select->limit(10);
$select->offset(0);

生成正确的 sql(table 的别名除外)