TableGateway с несколькими таблицами FROM

Я хотел бы сделать простой INNER JOIN между двумя таблицами в Zend2.

Конкретно, я хотел бы сделать это в Zend2:

SELECT * FROM foo, bar WHERE foo.foreign_id = bar.id;

У меня есть FooTable :

 class FooTable { protected $tableGateway; public function __construct(TableGateway $tableGateway) { $this->tableGateway = $tableGateway; } public function get($id) { $rowset = $this->tableGateway->select(function (Select $select) { $select->from('foo'); }); } } 

$select->from('foo'); возвращает ошибку:

==> Поскольку этот объект был создан с таблицей и / или схемой в конструкторе, он доступен только для чтения.

Таким образом, я не могу настроить мой оператор FROM, чтобы соответствовать простому внутреннему соединению между FooTable и BarTable .

Related of "TableGateway с несколькими таблицами FROM"

Надеюсь, это поможет вам в пути, поскольку это рабочий пример, который у меня есть:

 namespace Pool\Model; use Zend\Db\TableGateway\AbstractTableGateway; use Zend\Db\Sql\Select; class IpaddressPool extends AbstractTableGateway { public function __construct($adapter) { $this->table = 'ipaddress_pool'; $this->adapter = $adapter; $this->initialize(); } public function Leases($poolid) { $result = $this->select(function (Select $select) use ($poolid) { $select ->columns(array( 'ipaddress', 'accountid', 'productid', 'webaccountid' )) ->join('account', 'account.accountid = ipaddress_pool.accountid', array( 'firstname', 'lastname' )) ->join('product_hosting', 'product_hosting.hostingid = ipaddress_pool.hostingid', array( 'name' )) ->join('webaccount', 'webaccount.webaccountid = ipaddress_pool.webaccountid', array( 'domain' ))->where->equalTo('ipaddress_pool.poolid', $poolid); }); return $result->toArray(); } }