From 920095327d4a09e162d12dbee77176f300439f9e Mon Sep 17 00:00:00 2001 From: Cahit Percin <cahit.percin7@etu.univ-lorraine.fr> Date: Wed, 26 Feb 2020 11:29:22 +0100 Subject: [PATCH] exemple de modele eloquent --- composer.json | 2 +- src/modeles/Apporte.php | 18 ++++++++++++ src/modeles/Client.php | 13 +++++++++ src/modeles/Contient.php | 61 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 src/modeles/Apporte.php create mode 100644 src/modeles/Client.php create mode 100644 src/modeles/Contient.php diff --git a/composer.json b/composer.json index 180ed3f..d378585 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,7 @@ "autoload":{ "psr-4": { - "ccd\\" : "src/" + "gp\\" : "src/" } } } diff --git a/src/modeles/Apporte.php b/src/modeles/Apporte.php new file mode 100644 index 0000000..94788c9 --- /dev/null +++ b/src/modeles/Apporte.php @@ -0,0 +1,18 @@ +<?php + + + + +use Illuminate\Database\Eloquent\Builder; +class Apporte extends \Illuminate\Database\Eloquent\Model +{ + protected $table = 'apporte'; + protected $primaryKey = ['idCli', 'idIngre', 'idEvent']; + public $timestamps = false; + public $incrementing = false; + + public function ingredient() + { + return $this->hasOne('\fridgie\modeles\Ingredient', 'idIngre'); + } +} diff --git a/src/modeles/Client.php b/src/modeles/Client.php new file mode 100644 index 0000000..39527ec --- /dev/null +++ b/src/modeles/Client.php @@ -0,0 +1,13 @@ +<?php + + +namespace fridgie\modeles; + + +class Client extends \Illuminate\Database\Eloquent\Model +{ + protected $table = 'client'; + protected $primaryKey = 'idCli'; + public $timestamps = false ; + +} \ No newline at end of file diff --git a/src/modeles/Contient.php b/src/modeles/Contient.php new file mode 100644 index 0000000..55efc80 --- /dev/null +++ b/src/modeles/Contient.php @@ -0,0 +1,61 @@ +<?php + + +namespace fridgie\modeles; + +use Illuminate\Database\Eloquent\Builder; +class Contient extends \Illuminate\Database\Eloquent\Model +{ + protected $table = 'contient'; + protected $primaryKey = ['idRecette', 'idIngre']; + public $timestamps = false ; + public $incrementing = false; + + + public function recette() { + return $this->belongsTo('fridgie\modeles\Recette', 'idRecette'); + } + + public function ingredient() { + return $this->hasOne('fridgie\modeles\Ingredient', 'idIngre'); + } + + /** + * Set the keys for a save update query. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @return \Illuminate\Database\Eloquent\Builder + */ + protected function setKeysForSaveQuery(Builder $query) + { + $keys = $this->getKeyName(); + if(!is_array($keys)){ + return parent::setKeysForSaveQuery($query); + } + + foreach($keys as $keyName){ + $query->where($keyName, '=', $this->getKeyForSaveQuery($keyName)); + } + + return $query; + } + + /** + * Get the primary key value for a save query. + * + * @param mixed $keyName + * @return mixed + */ + protected function getKeyForSaveQuery($keyName = null) + { + if(is_null($keyName)){ + $keyName = $this->getKeyName(); + } + + if (isset($this->original[$keyName])) { + return $this->original[$keyName]; + } + + return $this->getAttribute($keyName); + } +} \ No newline at end of file -- GitLab