lithium\data\source\MongoDb::_operators PHP Method

_operators() protected method

protected _operators ( $field, $operators, $schema )
    protected function _operators($field, $operators, $schema)
    {
        $castOpts = compact('schema');
        $castOpts += array('first' => true, 'database' => $this, 'wrap' => false);
        $cast = function ($key, $value) use(&$schema, &$castOpts) {
            return $schema ? $schema->cast(null, $key, $value, $castOpts) : $value;
        };
        foreach ($operators as $key => $value) {
            if (!isset($this->_operators[$key])) {
                $operators[$key] = $cast($field, $value);
                continue;
            }
            $operator = $this->_operators[$key];
            if (is_array($operator)) {
                $operator = $operator[is_array($value) ? 'multiple' : 'single'];
            }
            if (is_callable($operator)) {
                return $operator($key, $value, compact('castOpts', 'field'));
            }
            unset($operators[$key]);
            $operators[$operator] = $cast($field, $value);
        }
        return $operators;
    }