Miałem ten problem. Myślę, że może to być spowodowane tym, że funkcja jest ignorowana w pierwszej funkcji select i po prostu zwraca wszystko. Znalazłem sposób, aby to zadziałało, wypróbuj coś takiego:
Użyj klasy Select wraz z funkcją selectWith bramy tabel:
use Zend\Db\Sql\Select as Select;
$select = new Select();
$select->from('table');
$select->columns(array('id','category_name'));
$resultSet = $this->tableGateway->selectWith($select);