phase 1 partie 3

This commit is contained in:
2025-11-17 15:43:12 +01:00
parent 2300847c58
commit cf75d78792
8 changed files with 76 additions and 1 deletions

0
README.md Executable file → Normal file
View File

View File

@@ -20,7 +20,7 @@ class ClientController extends Controller
* Requete Post Client * Requete Post Client
*/ */
public function store(Request $request) { public function store(Request $request) {
$data = $request->validate(['nom'=>'required', 'prenom'=>'required','email'=>'required|email|unique:clients','telephone'=>'nullable|regex:/^[0][0-9]{9}$/']); $data = $request->validate(['nom'=>'required', 'prenom'=>'required','email'=>'required|email|unique:clients','telephone'=>'nullable|regex:/^[0][1-9][0-9]{8}$/']);
return Client::create($data); return Client::create($data);
} }

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FrontendController extends Controller
{
public function accueil() {
return view('accueil');
}
//pour afficher les clients
public function clients() {
return view('clients');
}
//pour créer un client
public function creer() {
return view('creer');
}
}

0
public/css/style.css Normal file
View File

View File

@@ -0,0 +1,6 @@
@extends('layout')
@section('content'){{-- contenu injecté dans la vue layout --}}
<h1>Bienvenue dans la gestion de clients</h1>
<p>Utilisez le menu pour naviguer entre les pages.</p>
@endsection

View File

@@ -0,0 +1,24 @@
@extends('layout')
@section('content')
<h1>Liste des clients</h1>
<ul id="clients-list"></ul>
{{-- Définition et exécution d'une fonction javascript pour afficher les clients --}}
<script>
async function loadClients() {
try {
//appel de l'api
const response = await fetch('http://192.168.56.56:8000/api/clients');
const clients = await response.json();
const list = document.getElementById('clients-list');
list.innerHTML = '';
clients.forEach(c => {
list.innerHTML += `<li>${c.nom} (${c.email})</li>`;
});
} catch (error) {
console.error('Erreur :', error);
list.innerHTML = '<li>Impossible de charger les clients</li>';
}
}
loadClients();
</script>
@endsection

View File

@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Gestion Clients</title>
</head>
<body>
<nav>
<a href="{{ url('/') }}">Accueil</a>
<a href="{{ url('/clients') }}">Liste des clients</a>
</nav>
<div>
@yield('content'){{-- contenu des autres vues ici --}}
</div>
</body>
</html>

View File

@@ -1,7 +1,11 @@
<?php <?php
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FrontendController;
Route::get('/', function () { Route::get('/', function () {
return view('welcome'); return view('welcome');
}); });
Route::get('/', [FrontendController::class, 'accueil']);
Route::get('/clients', [FrontendController::class, 'clients']);