Я предполагаю, что вы используете TableGateway для fetch_province?
Если вы возвращающая ResultSet (т.е. совокупность элементов), вы можете получить одну строку/запись так:
$rowset => $this->getProvincesTable()->fetch_province($pid);
$myItem = $rowset->current();
$myItem->id; // do something with it here..
Это даст вам массив/ArrayObject который вы можете получить доступ к получите свой идентификатор.
Вы можете сделать это в своем методе TableGateway, поэтому каждый раз, когда вы пытаетесь получить одну запись, вы получаете только одну запись, или если вы иногда ожидаете несколько элементов, которые вы можете перебирать по ним или использовать текущую() метод выше.
Если вы разместите еще свой код (в частности fetch_province), я бы посоветовал немного лучше.
Например,
Если вы хотите всегда один пункт назад от этого метода, используя первичный ключ, который вы могли бы сделать что-то вроде этого внутри fetch_province:
$results = $table->select(array('id' => $id));
if(count($results) != 1) {
// something went wrong,
// throw exception here or what ever
}
$row = $results->current();
return $row; // now u always get back your single item