public to ( string $format, array $options = [] ) : mixed | ||
$format | string | By default the only supported value is `'array'`. However, additional format handlers can be registered using the `formats()` method. |
$options | array | Options for converting this collection: - `'internal'` _boolean_: Indicates whether the current internal representation of the collection should be exported. Defaults to `false`, which uses the standard iterator interfaces. This is useful for exporting record sets, where records are lazy-loaded, and the collection must be iterated in order to fetch all objects. - `'indexed'` _boolean|null_: Allows to control how converted data is keyed. When set to `true` will force indexed conversion of the collection (the default) even if the collection has a parent. When `false` will convert without indexing. Provide `null` as a value to this option to only index when the collection has no parent. |
return | mixed | The object converted to the value specified in `$format`; usually an array or string. |
public function to($format, array $options = array())
{
$defaults = array('internal' => false, 'indexed' => true, 'handlers' => array());
$options += $defaults;
$options['handlers'] += $this->_handlers;
$this->offsetGet(null);
$index = $options['indexed'] || $options['indexed'] === null && $this->_parent === null;
if (!$index) {
$data = array_values($this->_data);
} else {
$data = $options['internal'] ? $this->_data : $this;
}
return $this->_to($format, $data, $options);
}
/** * Adds conversions checks to ensure certain class types and embedded values are properly cast. * * @param string $format Currently only `array` is supported. * @param array $options * @return mixed */ public function to($format, array $options = array()) { $options += array('handlers' => array('MongoId' => function ($value) { return (string) $value; }, 'MongoDate' => function ($value) { return $value->sec; })); $this->offsetGet(null); return parent::to($format, $options); }