Beispiel #1
0
 /**
  * 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;
 }