protected static function getRelation($initMethod, array $params) { $relation = new ModelRelation(static::connection(), get_called_class()); $relation->from(static::tableName()); call_user_func_array([$relation, $initMethod], $params); return $relation; }
/** * Vue ajoutL * * Permet d'assigner un contact local à un hopital * */ ?> <h4> Associer un contact local à l'hôpital</h4> <p><b>Créer un contact local</b></br>Transformer d'abord l'utilisateur en contact local via sa fiche: </br><a href="index.php?action=listeUtilisateurs">Accès aux fiches utilisateurs</a></p> <p><b>Associer un contact local</b></br>Pour cela, le sélectionner dans la liste ci-dessous puis valider:</p> <select class="form-control" name="idContact"> <?php foreach ($contacts as $contact) { ?> <?php if (!ModelRelation::rechercherContactLocalInHopital($idHopital, $contact["idContact"])) { ?> <option value="<?php echo $contact["idContact"]; ?> "> <?php $contact = UtilisateurGateway::rechercheUtilisateurId($contact["idUtilisateur"]); echo $contact->prenom . ' '; echo $contact->nom; ?> </option> <?php } ?> <?php
public function defineResourceModels() { $modelNames = func_get_args(); foreach ($modelNames as $modelName) { ModelRelation::define("AclResource(1):{$modelName}(1)"); } }
public function getManyToManyRelation() { return $this->getLinkModel() === null ? new ModelRelation([]) : ModelRelation::getRelation($this->isOneToMany() ? $this->modelSource : $this->modelTarget, $this->modelLink); }
/** * Returns the name of the FK field used by $this Model to point to Models of * type $model. * * If you don't use the recommended method of naming foreign-keys * (ie. "foreign_table_id") on $this Model, then you can override this method * to return customized foreign-keys. * * @param string|Model Model to which the foreign-key points * @param string Relationship reference * @return string */ public function getForeignKey($model, $relationRef = ModelRelation::REF_DEFAULT) { // TODO: Add a result cache here // Get Model name if passed an instance if ($model instanceof Model) { $model = $model->modelName; } // Get the relationship between $this and $model $rel = ModelRelation::getRelation($this->modelName, $model, $relationRef); // Normal relation return $rel->isOneToMany() ? $rel->getForeignKey() : $rel->getNativeKey(); }
/** * Fonction supprimerRelation * * permet de supprimer une relation */ public static function supprimerRelation() { $utilisateurConnecter = $_SESSION['utilisateurConnecter']; try { ModelRelation::supprimerRelation($_REQUEST['idHopital'], $_REQUEST['idContact']); $hopital = ModelGestionHopital::rechercherHopital($_REQUEST['idHopital']); $_SESSION['hopitalModifie'] = $hopital; } catch (PDOException $ex) { $vueErreur[] = $ex->getMessage(); } catch (Exception $e) { $vueErreur[] = $e->getMessage(); } require_once 'vue/pages/moderateur/modificationHopital.php'; }
/** * Fonction de modification d'un hôpital. * * Permet de modifier un hôpital. * @param idHopital correspond à l'id de l'hôpital à modifier. * @return retourne l'hôpital modifier. */ public static function modifierHopital($idHopital) { $nomHopital = VariableExterne::verifChampObligatoire('nomHopital', 'nomHopital'); $service = VariableExterne::verifChampObligatoire('service', 'service'); $niveau = $service; $nbLits = VariableExterne::verifChampOptionnel('nbLits'); $nbPremaParAn = VariableExterne::verifChampOptionnel('nbPremaParAn'); $cafeParent = VariableExterne::verifChampOptionnel('cafeParent'); $parkingPayant = VariableExterne::verifChampOptionnel('parkingPayant'); $convention = VariableExterne::verifChampOptionnel('convention'); $visiteBenevole = VariableExterne::verifChampOptionnel('visiteBenevole'); $contactHopital = VariableExterne::verifChampOptionnel('contactH'); $idcontact = VariableExterne::verifChampOptionnel('idContact'); $idAdresse = ModelGestionLieu::gestionAjoutModifAdresse(); ModelContactHopital::ajouterContactHopital($idHopital); ModelRelation::ajouterRelation($idHopital, $idcontact); HopitalGateway::modifierHopital($idHopital, $nomHopital, $idAdresse, $niveau, $service, $nbLits, $nbPremaParAn, $cafeParent, $parkingPayant, $convention, $visiteBenevole); return HopitalGateway::rechercherHopital($idHopital); }