Zend\Stdlib\Hydrator\ClassMethods を拡張し、ここで必要な変換を行うことができます。
その後、mapField を使用して、フィールドの 1 つから正しい id フィールド名にマップできます。
namespace Application\Model;
use Zend\Stdlib\Hydrator\ClassMethods;
class MyHydrator extends ClassMethods
{
/**
* Extract values from an object
*
* @param object $object
* @return array
* @throws Exception\InvalidArgumentException
*/
public function extract($object)
{
$data = parent::extract($object);
$data = $this->mapField('id', 'user_id', $data);
return $data;
}
/**
* Map fields
*
* @param type $keyFrom
* @param type $keyTo
* @param array $array
* @return array
*/
protected function mapField($keyFrom, $keyTo, array $array)
{
$array[$keyTo] = $array[$keyFrom];
unset($array[$keyFrom]);
return $array;
}
}
または、設定/取得が必要な id フィールドのゲッターとセッターを作成することもできます。たとえば、 'user_id' という ID がある場合:
public function getUserId() { .. }
public function setUserId($id) { .. }