Laravel 6

verification des session avant suppression

Avatar de SAWADOGOSIDIKI
SAWADOGOSIDIKI

salut!!! je suis sur un projet qui est la gestion des rapports dont les rapports sont affiches par directions. pour cela chaque utilisateur devrait pouvoir supprimer uniquement ses rapports enregistrer et non pour une autre personne. j'ai pensé a utlisé les session mais sa ne marche toujours pas. je dois verifier si le rapport que l'user veut supprimer l'appartient sinon un message d'erreur lui serait renvoyer.

jai recuperer id du user connecté pour comparer avec celui enregistrer dans la table rapports mais tjr probleme.

tables rapports(id, nom,.... id_user) user(id, nom,...)

Model User.php public function documents() { return $this->hasMany('App\Models\Document'); }

Model rapport.php public function user() { return $this->belongsTo('App\User','id_user'); }

RapportController.php(suppression)

public function destroy($id) {
$user= Auth:: user()->id; $documents= Document::findOrFail($id); $documents->id_user;

if($user = $documents){

  Storage::delete($documents->fichier,$documents->fichier1,$documents->fichier2);

  $documents->delete();

 return response()->json($documents); 

}else{ return "Desole.....!";

} }

Avatar de lazare_fortune
lazare_fortune

Salut, pouvez vous montrer le code ou vous effectuez la comparaison. l'idéal c'est de comparer auth()->user()->id avec id_user et mettre dans une policy pour ensuite réutiliser simplement au besoin.

Avatar de CinquièmeDimension
CinquièmeDimension

Salut, Tout dépends comment est faite la relation entre user et rapport...

S'il n'y a aucune relation, le plus simple est d'ajouter une relation OneToMany de user à rapport. Ou la version plus simplifiée (sans clé étrangère donc très simplifiée) qui est de rajouter un champs user_id dans la table rapports et tu peux donc comparer auth()->user()->id avec rapport->user_id.

Mais je rejoins lazare_fortune sur le fait que si tu nous poartage ton code, on pourra t'aiguiller plus précisement. Donc les models de user, rapport, et le controller qui gère la suppression du rapport

Vous ne pouvez pas répondre à ce sujet.