W Modue.php mam zdeklarowaną fabrykę:
'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);
},
Chciałbym za pomocą HistoryTableGateway pobrać z bazy danych informację z 2 tabel:
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
Póki co udało mi się pobrać dane za pomocą join, tylko że pobiera dane z jednej tablicy:
SELECT * FROM `cases_log`
JOIN users
ON users.id = cases_log.user
Funkcja pobierająca dane w HistoryTable.php:
$table = $this->tableGateway;
$select = $table->getSql()->select();
//$select->from(array('L' => 'cases_log'))->join(array('U' => 'users'),'L.user = U.id');
//$select->columns(array('action', 'surname'));
$select->join('users', 'users.id = cases_log.user');
$select->limit(10);
$select->offset(0);
$resultSet = $table->selectWith($select);
return $resultSet;
Jak widać w zakomentowanych liniach próbowałem dostać się jakoś do sekcji SELECT - niestety konstrukcja HistoryTableGateway ustawia $select->from na read only ...
Da się to w ten sposób zrobić ?