'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ć ?