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