Нашел одно решение.
В фабрике, при создании обертки, в конструктор класса (SomeTable) вторым аргументом передавать адаптер:
'factories' => array(
'Some\Model\SomeTable' => function($sm)
{
$dbAdapter = $sm->get('adapter');
$tableGateway = new TableGateway('table', $dbAdapter);
$table = new SomeTable($tableGateway, $dbAdapter);
return $table;
},
)
Для того, чтобы в пределах этого класса была возможность создать отдельные sql-запросы.
Получилось примерно следующее:
namespace Some\Model;
use Zend\Db\Sql\Sql;
use Zend\Db\TableGateway\TableGateway;
class SomeTable
{
protected $dbAdapter;
protected $tableGateway;
public function __construct(TableGateway $tableGateway, $dbAdapter)
{
$this->dbAdapter = $dbAdapter;
$this->tableGateway = $tableGateway;
}
public function someAction()
{
$sql = new Sql($this->dbAdapter);
$select = $sql->select();
$select->from('another_table');
$select->where(array('id' => 1));
$statement = $sql->prepareStatementForSqlObject($select);
$results = $statement->execute();
return ($results->count()) ? $results->current() : null;
}
}