Skip to content
Snippets Groups Projects
Commit 8933d420 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

TP8 Ex3 terminé.

parent 3b039f83
No related branches found
No related tags found
No related merge requests found
......@@ -54,6 +54,90 @@ class ControleurLivre extends ControleurObjet
public static function definirAuteurs(): string
{
return "";
if (!empty($_GET["numLivre"])){
$autors = Auteur::getAllAuteurs();
$bookAutors = Auteur::getAuteursByNumLivre($_GET["numLivre"]);
$book = Livre::getLivreByNumLivre($_GET["numLivre"]);
$autorsList = [];
foreach ($autors as $auteur){
$isBookAutor = false;
foreach ($bookAutors as $livreAuteur){
if($auteur->numAuteur == $livreAuteur->numAuteur){
$isBookAutor = true;
break;
}
}
$autorsList[] = [
"numAuteur" => $auteur->numAuteur,
"nom" => $auteur->nom,
"prenom" => $auteur->prenom,
"anneeNaissance" => $auteur->anneeNaissance,
"isBookAutor" => $isBookAutor
];
}
return view('livre.definir-auteur', [
"autorsList" => $autorsList,
"book" => $book
]);
}else{
return view('return-message', [
'pageTitle' => "Définir les auteurs d'un livre",
'returnMessage' => [
"status" => "danger",
"title" => "Erreur",
"message" => "Il manque des paramètres dans l'url"
]
]);
}
}
public static function supprimerAuteurDuLivre(): string
{
if (!empty($_GET["numLivre"]) && !empty($_GET["numAuteur"])){
Livre::deleteAuteurForLivre($_GET["numLivre"], $_GET["numAuteur"]);
return view('return-message', [
'pageTitle' => "Supprimer un auteur d'un livre",
'returnMessage' => [
"status" => "success",
"title" => "Supprimer un auteur d'un livre",
"message" => "Suppression de l'auteur réussie."
]
]);
}
return view('return-message', [
'pageTitle' => "Supprimer un auteur d'un livre",
'returnMessage' => [
"status" => "danger",
"title" => "Erreur",
"message" => "Il manque des paramètres dans l'url"
]
]);
}
public static function ajouterAuteurDuLivre(): string
{
if (!empty($_GET["numLivre"]) && !empty($_GET["numAuteur"])){
Livre::addAuteurForLivre($_GET["numLivre"], $_GET["numAuteur"]);
return view('return-message', [
'pageTitle' => "ajouter un auteur à un livre",
'returnMessage' => [
"status" => "success",
"title" => "Supprimer un auteur d'un livre",
"message" => "Suppression de l'auteur réussie."
]
]);
}
return view('return-message', [
'pageTitle' => "ajouter un auteur à un livre",
'returnMessage' => [
"status" => "danger",
"title" => "Erreur",
"message" => "Il manque des paramètres dans l'url"
]
]);
}
}
\ No newline at end of file
......@@ -33,6 +33,8 @@ if (empty($_REQUEST["action"])) {
"supprimerObjet" => ControleurObjet::supprimerObjet(),
"definirAuteurs" => ControleurLivre::definirAuteurs(),
"definirNationalites" => ControleurAuteur::definirNationalites(),
"supprimerAuteurDuLivre" => ControleurLivre::supprimerAuteurDuLivre(),
"ajouterAuteurDuLivre" => ControleurLivre::ajouterAuteurDuLivre(),
default => ControleurAuteur::lireAuteur(),
};
} catch (Exception $e) {
......
@extends('layouts.page-layout')
@section('title', 'Définir les auteurs d'un livre')
@section('content')
<div class="container mt-3">
<h1>Définir les auteurs d'un livre</h1>
<p>Voici la liste des auteurs. Vous pouvez choisir de les associers ou de les dissociers du livre.</p>
<table class="table">
<thead>
<tr class="table-dark">
<th scope="col">n°</th>
<th scope="col">Nom</th>
<th scope="col">Prénom</th>
<th scope="col">Année de naissance</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
@foreach($autorsList as $autor)
<tr>
<th scope="row">{{ $autor['numAuteur'] }}</th>
<td>{{ $autor['nom'] }}</td>
<td>{{ $autor['prenom'] }}</td>
<td>{{ $autor['anneeNaissance'] }}</td>
@if($autor['isBookAutor'])
<td><a href="index.php?action=supprimerAuteurDuLivre&numLivre={{ $book->numLivre }}&numAuteur={{ $autor['numAuteur'] }}"
class="btn btn-sm btn-danger">Dissocier</a> </td>
@else
<td><a href="index.php?action=ajouterAuteurDuLivre&numLivre={{ $book->numLivre }}&numAuteur={{ $autor['numAuteur'] }}"
class="btn btn-sm btn-success">Associer</a> </td>
@endif
</tr>
@endforeach
</tbody>
</table>
</div>
@endsection
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment