public function __construct($table, Adapter $db, $strategies = array()) { $hydrator = new ArraySerializable(); foreach ($strategies as $field => $strategy) { $hydrator->addStrategy($field, $strategy); } $resultSet = new HydratingResultSet(); $resultSet->setHydrator($hydrator); parent::__construct($table, $db, null, $resultSet); }
protected function buildHydrator() { // Inicialização $hydrator = new Hydrator\ArraySerializable(); $datetime = new Datetime(); // Internacionalização $serviceLocator = new ServiceManager(); $datetime->setServiceLocator($serviceLocator); // Adicionar Estratégia de Filtro $hydrator->addStrategy('datetime', $datetime); // Apresentação return $hydrator; }
/** * Get a hydrator to bind CustomField objects to the database * * Unlike other tables, the hydrator cannot be provided by the CustomFields * table class due to tricky dependencies. Use this method to get a suitable * hydrator. * * @return \Zend\Stdlib\Hydrator\ArraySerializable */ public function getHydrator() { if (!$this->_hydrator) { $columns = $this->getColumnMap(); $this->_hydrator = new \Zend\Stdlib\Hydrator\ArraySerializable(); $this->_hydrator->setNamingStrategy(new \Database\Hydrator\NamingStrategy\MapNamingStrategy(array_flip($columns))); $dateStrategy = new \Zend\Stdlib\Hydrator\Strategy\DateTimeFormatterStrategy('Y-m-d'); foreach ($this->getFields() as $name => $type) { if ($type == 'date') { $this->_hydrator->addStrategy($name, $dateStrategy); $this->_hydrator->addStrategy($columns[$name], $dateStrategy); } } } return $this->_hydrator; }