Skip to content
Snippets Groups Projects
Commit 367e709a authored by OlivierFrancois's avatar OlivierFrancois
Browse files

Controller, CRUD

parent 0a9c6814
Branches
No related merge requests found
<?php
namespace App\Http\Controllers;
use App\Models\Champion;
use Illuminate\Http\Request;
class ChampionController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('champion.index', ['champions' => Champion::all()]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view ('champion.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$data = $request->validate([
'name' => 'string|required',
'level' => 'integer|required'
]);
$champion = new Champion;
$champion->fill($data);
$champion->save();
return redirect()->route('champion.show', $champion);
}
/**
* Display the specified resource.
*
* @param \App\Models\Champion $champion
* @return \Illuminate\Http\Response
*/
public function show(Champion $champion)
{
return view('champion.show', ['champion' => $champion]);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Champion $champion
* @return \Illuminate\Http\Response
*/
public function edit(Champion $champion)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\Champion $champion
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Champion $champion)
{
$data = $request->validate([
'name' => 'string|required',
'level' => 'integer|required'
]);
$champion->fill($data);
$champion->save();
return redirect()->route('champion.show', $champion);
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Champion $champion
* @return \Illuminate\Http\Response
*/
public function destroy(Champion $champion)
{
$champion->delete();
return redirect()->route('champion.index');
}
}
@extends('layouts.app')
@section('content')
<h2>Liste des champions</h2>
<ul>
@foreach ($champions as $champion)
<li> {{ $champion->name }} de niveau {{ $champion->level }}</li>
<li> <a href=" {{ route('champion.show', ['champion' => $champion])}}">{{ $champion->name }} de niveau {{ $champion->level }}</a></li>
@endforeach
</ul>
<h2>Création d'un champion</h2>
<form action=" {{ route('champion.store') }}" method="post" class="p-2">
@csrf
<div>
<label for="name">Nom du champion</label> <br>
<input type="text" name="name" placeholder="Nom du champion" value="{{ old('name') }}">
</div>
<div>
<label for="level">Level</label> <br>
<input type="number" name="level" value="{{ old ('level') }}">
</div>
<button type="submit">Créer le champion</button>
</form>
@endsection
\ No newline at end of file
@extends('layouts.app')
@section('content')
<a href=" {{ route('champion.index')}}">Retourner à l'index des champions</a>
<h2>{{ $champion->name }}</h2>
<p>Le champion est niveau {{ $champion->level }}</p>
<h2>Editer le champion</h2>
<form action=" {{ route('champion.update', $champion) }}" method="post" class="p-2">
@csrf
@method('PUT');
<div>
<label for="name">Nom du champion</label> <br>
<input type="text" name="name" placeholder="Nom du champion" value="{{ old('name', $champion->name) }}">
</div>
<div>
<label for="level">Level</label> <br>
<input type="number" name="level" value="{{ old('level', $champion->level) }}">
</div>
<button type="submit">Editer le champion</button>
</form>
<h2>Supprimer un champion</h2>
<form action=" {{ route('champion.destroy', $champion) }}" method="post" class="p-2">
@csrf
@method('DELETE')
<button type="submit">Supprimer le champion</button>
</form>
@endsection
\ No newline at end of file
<?php
use App\Http\Controllers\ChampionController;
use App\Models\Champion;
use Illuminate\Support\Facades\Route;
/*
......@@ -26,6 +27,4 @@ Route::get('/darius', function() {
return view('darius');
})->name('darius');
Route::get('/champion', function() {
return view('champion.index', ['champions' => Champion::all()]);
});
\ No newline at end of file
Route::resource('/champion', ChampionController::class);
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment