/** * Adds discriminator criteria to an already-prepared query. * * This method should be used once for query criteria and not be used for * nested expressions. It should be called before * {@link DocumentPerister::addFilterToPreparedQuery()}. * * @param array $preparedQuery * @return array */ public function addDiscriminatorToPreparedQuery(array $preparedQuery) { /* If the class has a discriminator field, which is not already in the * criteria, inject it now. The field/values need no preparation. */ if ($this->class->hasDiscriminator() && !isset($preparedQuery[$this->class->discriminatorField])) { $discriminatorValues = $this->getClassDiscriminatorValues($this->class); $preparedQuery[$this->class->discriminatorField] = array('$in' => $discriminatorValues); } return $preparedQuery; }