phase 1 partie 3
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
22
app/Http/Controllers/FrontendController.php
Normal file
22
app/Http/Controllers/FrontendController.php
Normal 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
0
public/css/style.css
Normal file
6
resources/views/accueil.blade.php
Normal file
6
resources/views/accueil.blade.php
Normal 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
|
||||||
24
resources/views/clients.blade.php
Normal file
24
resources/views/clients.blade.php
Normal 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
|
||||||
19
resources/views/layout.blade.php
Normal file
19
resources/views/layout.blade.php
Normal 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>
|
||||||
@@ -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']);
|
||||||
Reference in New Issue
Block a user