/** * - Retrouver un refElement selon certains critères et le modifier/supprimer * - Récupérer cet refElement ou sa version modifiée * - Gestion des exceptions et des erreurs * @author Alban Truc * @param array|RefElement $searchQuery critères de recherche * @param array|RefElement $updateCriteria les modifications à réaliser * @param array|NULL $fieldsToReturn pour ne récupérer que certains champs * @param array|NULL $options * @since 11/03/2014 * @return array|RefElement */ function findAndModify($searchQuery, $updateCriteria, $fieldsToReturn = NULL, $options = NULL) { //Transforme $criteria en array s'il contient un objet if ($searchQuery instanceof RefElement) { $searchQuery = $this->dismount($searchQuery); } //Transforme $criteria en array s'il contient un objet if ($updateCriteria instanceof RefElement) { $updateCriteria = $this->dismount($updateCriteria); } $result = parent::__findAndModify('refelement', $searchQuery, $updateCriteria, $fieldsToReturn, $options); if ($fieldsToReturn === NULL) { $result = new RefElement($result); } return $result; }
/** * - Retrouver une connexion selon certains critères et le modifier/supprimer * - Récupérer cette connexion ou sa version modifiée * - Gestion des exceptions et des erreurs * @author Alban Truc * @param array|Connection $searchQuery critères de recherche * @param array|Connection $updateCriteria les modifications à réaliser * @param array|NULL $fieldsToReturn pour ne récupérer que certains champs * @param array|NULL $options * @since 11/03/2014 * @return array|Connection */ function findAndModify($searchQuery, $updateCriteria, $fieldsToReturn = NULL, $options = NULL) { //Transforme $criteria en array s'il contient un objet if ($searchQuery instanceof Connection) { $searchQuery = $this->dismount($searchQuery); } //Transforme $criteria en array s'il contient un objet if ($updateCriteria instanceof Connection) { $updateCriteria = $this->dismount($updateCriteria); } if (isset($searchQuery['idUser'])) { if ($searchQuery['idUser'] instanceof User) { $searchQuery['idUser'] = new MongoId($searchQuery['idUser']->getId()); } else { if (is_array($searchQuery['idUser']) && isset($searchQuery['idUser']['_id'])) { $searchQuery['idUser'] = $searchQuery['idUser']['_id']; } } } if (isset($updateCriteria['idUser'])) { if ($updateCriteria['idUser'] instanceof User) { $updateCriteria['idUser'] = new MongoId($updateCriteria['idUser']->getId()); } else { if (is_array($updateCriteria['idUser']) && isset($updateCriteria['idUser']['_id'])) { $updateCriteria['idUser'] = $updateCriteria['idUser']['_id']; } } } $result = parent::__findAndModify('connection', $searchQuery, $updateCriteria, $fieldsToReturn, $options); if ($fieldsToReturn === NULL) { $result = new Connection($result); } return $result; }