ajout de la fonctionnalité login et modification profil
This commit is contained in:
+36
-1
@@ -6,5 +6,40 @@ use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Activite extends Model
|
||||
{
|
||||
//
|
||||
protected $primaryKey = 'ID_Instance';
|
||||
protected $table = 'activites';
|
||||
public $incrementing = true;
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'DateDebut',
|
||||
'DateFin',
|
||||
'ID_Utilisateur_Hote',
|
||||
'ID_Ressource',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'DateDebut' => 'datetime',
|
||||
'DateFin' => 'datetime',
|
||||
];
|
||||
|
||||
public function hote()
|
||||
{
|
||||
return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur_Hote', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
public function ressource()
|
||||
{
|
||||
return $this->belongsTo(Ressource::class, 'ID_Ressource', 'ID_Ressource');
|
||||
}
|
||||
|
||||
public function messages()
|
||||
{
|
||||
return $this->hasMany(ActiviteMessage::class, 'ID_Instance', 'ID_Instance');
|
||||
}
|
||||
|
||||
public function participants()
|
||||
{
|
||||
return $this->belongsToMany(Utilisateur::class, 'activite_participants', 'ID_Instance', 'ID_Utilisateur_Participant', 'ID_Instance', 'ID_Utilisateur');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ActiviteMessage extends Model
|
||||
{
|
||||
protected $primaryKey = 'ID_Message';
|
||||
protected $table = 'activite_messages';
|
||||
public $incrementing = true;
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'Message',
|
||||
'ID_Utilisateur_Emetteur',
|
||||
'ID_Instance',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'Timestamp' => 'datetime',
|
||||
];
|
||||
|
||||
public function emetteur()
|
||||
{
|
||||
return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur_Emetteur', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
public function activite()
|
||||
{
|
||||
return $this->belongsTo(Activite::class, 'ID_Instance', 'ID_Instance');
|
||||
}
|
||||
}
|
||||
@@ -6,5 +6,17 @@ use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Categorie extends Model
|
||||
{
|
||||
//
|
||||
public $timestamps = false;
|
||||
protected $primaryKey = 'ID_Categorie';
|
||||
protected $table = 'categories';
|
||||
|
||||
protected $fillable = [
|
||||
'Nom',
|
||||
'Description',
|
||||
];
|
||||
|
||||
public function ressources()
|
||||
{
|
||||
return $this->belongsToMany(Ressource::class, 'ressource_categories', 'ID_Categorie', 'ID_Ressource', 'ID_Categorie', 'ID_Ressource');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,15 +4,42 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Commentaire extends Model {
|
||||
class Commentaire extends Model
|
||||
{
|
||||
protected $primaryKey = 'ID_Commentaire';
|
||||
protected $table = 'commentaires';
|
||||
public $incrementing = true;
|
||||
|
||||
public function auteur() {
|
||||
return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur');
|
||||
protected $fillable = [
|
||||
'Texte',
|
||||
'Statut',
|
||||
'ID_Parent_Commentaire',
|
||||
'ID_Utilisateur',
|
||||
'ID_Ressource',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'DatePublication' => 'datetime',
|
||||
];
|
||||
|
||||
public function auteur()
|
||||
{
|
||||
return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
// Relation récursive pour les réponses aux commentaires [cite: 60, 275]
|
||||
public function reponses() {
|
||||
return $this->hasMany(Commentaire::class, 'ID_Parent_Commentaire');
|
||||
public function ressource()
|
||||
{
|
||||
return $this->belongsTo(Ressource::class, 'ID_Ressource', 'ID_Ressource');
|
||||
}
|
||||
|
||||
// Relation récursive pour les réponses aux commentaires
|
||||
public function reponses()
|
||||
{
|
||||
return $this->hasMany(Commentaire::class, 'ID_Parent_Commentaire', 'ID_Commentaire');
|
||||
}
|
||||
|
||||
public function parent()
|
||||
{
|
||||
return $this->belongsTo(Commentaire::class, 'ID_Parent_Commentaire', 'ID_Commentaire');
|
||||
}
|
||||
}
|
||||
+46
-10
@@ -4,23 +4,59 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Ressource extends Model {
|
||||
class Ressource extends Model
|
||||
{
|
||||
protected $primaryKey = 'ID_Ressource';
|
||||
protected $table = 'ressources';
|
||||
public $incrementing = true;
|
||||
|
||||
public function type() {
|
||||
return $this->belongsTo(TypeRessource::class, 'ID_Type_Ressource');
|
||||
protected $fillable = [
|
||||
'Titre',
|
||||
'Contenu',
|
||||
'URL',
|
||||
'Visibilite',
|
||||
'Statut',
|
||||
'ID_Type_Ressource',
|
||||
'ID_Moderateur_Validation',
|
||||
'ID_Utilisateur_Createur',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'DateCreation' => 'datetime',
|
||||
];
|
||||
|
||||
public function type()
|
||||
{
|
||||
return $this->belongsTo(TypeRessource::class, 'ID_Type_Ressource', 'ID_Type_Ressource');
|
||||
}
|
||||
|
||||
public function categories() {
|
||||
// Relation Many-to-Many via la table pivot Ressource_Categorie [cite: 175]
|
||||
return $this->belongsToMany(Categorie::class, 'Ressource_Categorie', 'ID_Ressource', 'ID_Categorie');
|
||||
public function categories()
|
||||
{
|
||||
return $this->belongsToMany(Categorie::class, 'ressource_categories', 'ID_Ressource', 'ID_Categorie', 'ID_Ressource', 'ID_Categorie');
|
||||
}
|
||||
|
||||
public function createur() {
|
||||
return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur_Createur');
|
||||
public function createur()
|
||||
{
|
||||
return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur_Createur', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
public function commentaires() {
|
||||
return $this->hasMany(Commentaire::class, 'ID_Ressource');
|
||||
public function moderateur()
|
||||
{
|
||||
return $this->belongsTo(Utilisateur::class, 'ID_Moderateur_Validation', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
public function commentaires()
|
||||
{
|
||||
return $this->hasMany(Commentaire::class, 'ID_Ressource', 'ID_Ressource');
|
||||
}
|
||||
|
||||
public function activites()
|
||||
{
|
||||
return $this->hasMany(Activite::class, 'ID_Ressource', 'ID_Ressource');
|
||||
}
|
||||
|
||||
public function progressions()
|
||||
{
|
||||
return $this->hasMany(Utilisateur_Progression::class, 'ID_Ressource', 'ID_Ressource');
|
||||
}
|
||||
}
|
||||
+12
-1
@@ -6,5 +6,16 @@ use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Role extends Model
|
||||
{
|
||||
//
|
||||
public $timestamps = false;
|
||||
protected $primaryKey = 'ID_Role';
|
||||
protected $table = 'roles';
|
||||
|
||||
protected $fillable = [
|
||||
'Nom',
|
||||
];
|
||||
|
||||
public function utilisateurs()
|
||||
{
|
||||
return $this->hasMany(Utilisateur::class, 'ID_Role', 'ID_Role');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,5 +6,16 @@ use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class TypeRessource extends Model
|
||||
{
|
||||
//
|
||||
public $timestamps = false;
|
||||
protected $primaryKey = 'ID_Type_Ressource';
|
||||
protected $table = 'type_ressources';
|
||||
|
||||
protected $fillable = [
|
||||
'Format',
|
||||
];
|
||||
|
||||
public function ressources()
|
||||
{
|
||||
return $this->hasMany(Ressource::class, 'ID_Type_Ressource', 'ID_Type_Ressource');
|
||||
}
|
||||
}
|
||||
|
||||
+51
-17
@@ -1,42 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models; // Déclare que le modèle est dans app/Models
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable; // On importe le "User" de base sous un alias
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
|
||||
class Utilisateur extends Authenticatable
|
||||
class Utilisateur extends Authenticatable
|
||||
{
|
||||
use Notifiable;
|
||||
|
||||
// Indique à Eloquent d'utiliser ta table SQL spécifique [cite: 174, 175]
|
||||
protected $table = 'Utilisateur';
|
||||
// Nom de la table
|
||||
protected $table = 'utilisateurs';
|
||||
|
||||
// Définit la clé primaire personnalisée de ton SQL [cite: 175]
|
||||
// Clé primaire personnalisée
|
||||
protected $primaryKey = 'ID_Utilisateur';
|
||||
|
||||
// Désactive l'auto-incrémentation si nécessaire, ou précise le type
|
||||
public $incrementing = true;
|
||||
protected $keyType = 'int';
|
||||
|
||||
// Liste des champs modifiables (Mass Assignment)
|
||||
// Colonnes modifiables (Mass Assignment)
|
||||
protected $fillable = [
|
||||
'Email',
|
||||
'MotDePasse',
|
||||
'Pseudo',
|
||||
'ID_Role',
|
||||
'Statut'
|
||||
'Email',
|
||||
'MotDePasse',
|
||||
'Pseudo',
|
||||
'Statut',
|
||||
'ID_Role',
|
||||
'DateInscription',
|
||||
];
|
||||
|
||||
// Cache les données sensibles [cite: 99, 176]
|
||||
// Données sensibles à cacher
|
||||
protected $hidden = [
|
||||
'MotDePasse',
|
||||
];
|
||||
|
||||
// Chiffrement requis par le cahier des charges [cite: 99, 176]
|
||||
// Casts des attributs
|
||||
protected $casts = [
|
||||
'Email' => 'encrypted',
|
||||
'MotDePasse' => 'hashed',
|
||||
'DateInscription' => 'datetime',
|
||||
];
|
||||
|
||||
// Utiliser Email comme authentifiant
|
||||
public function getAuthIdentifierName()
|
||||
{
|
||||
return 'Email';
|
||||
}
|
||||
|
||||
// Relation avec Role
|
||||
public function role()
|
||||
{
|
||||
return $this->belongsTo(Role::class, 'ID_Role', 'ID_Role');
|
||||
}
|
||||
|
||||
// Relation avec Ressources créées
|
||||
public function ressourcesCreees()
|
||||
{
|
||||
return $this->hasMany(Ressource::class, 'ID_Utilisateur_Createur', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
// Relation avec Commentaires
|
||||
public function commentaires()
|
||||
{
|
||||
return $this->hasMany(Commentaire::class, 'ID_Utilisateur', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
// Relation avec Activites hôtées
|
||||
public function activitesHotees()
|
||||
{
|
||||
return $this->hasMany(Activite::class, 'ID_Utilisateur_Hote', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
// Relation avec Progressions
|
||||
public function progressions()
|
||||
{
|
||||
return $this->hasMany(Utilisateur_Progression::class, 'ID_Utilisateur', 'ID_Utilisateur');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Utilisateur_Progression extends Model
|
||||
{
|
||||
protected $table = 'utilisateur_progressions';
|
||||
public $timestamps = false;
|
||||
public $incrementing = false;
|
||||
|
||||
protected $primaryKey = ['ID_Utilisateur', 'ID_Ressource'];
|
||||
|
||||
protected $fillable = [
|
||||
'ID_Utilisateur',
|
||||
'ID_Ressource',
|
||||
'Statut_Exploitation',
|
||||
'Est_Favori',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'Est_Favori' => 'boolean',
|
||||
];
|
||||
|
||||
public function utilisateur()
|
||||
{
|
||||
return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur', 'ID_Utilisateur');
|
||||
}
|
||||
|
||||
public function ressource()
|
||||
{
|
||||
return $this->belongsTo(Ressource::class, 'ID_Ressource', 'ID_Ressource');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user