Имах този проблем. Мисля, че може да се дължи на факта, че функцията се игнорира в първата функция за избор и просто връща всичко. Намерих начин да накарам това да работи, опитайте нещо като следното:
Използвайте класа Select заедно с функцията selectWith на tablegateway:
use Zend\Db\Sql\Select as Select;
$select = new Select();
$select->from('table');
$select->columns(array('id','category_name'));
$resultSet = $this->tableGateway->selectWith($select);