Boa tarde Vini, tô tendo o seguinte erro e não to conseguindo resolver: **
- Missing required parameter for [Route: series.edit] [URI: series/{series}/edit] [Missing parameter: series].**
Segue abaixo meu código:
SeriesController.php
<?php
//use...
//namespace...
tive q ocultar
class SeriesController extends Controller
{
public function index(Request $request) //recebemos por parâmetro a requisição
{
$series = Serie::all(); //como se fosse um select só que usando ELOQUENT
$mensagemSucesso = session('mensagem.sucesso'); //vai exibir a mensagem caso exista
return view('series/index')->with('series', $series)->with('mensagemSucesso', $mensagemSucesso);
}
public function create()
{
return view('series.create');
}
public function store(SeriesFormRequest $request)
{
$request->validate([
'nome' => ['required', 'min:3'] //nome é obrigatório, min 3 caracteres
]);
$serie = Serie::create($request->all());
return redirect(route('series.index'))->with('mensagem.sucesso', "Série {$serie->nome} excluída com sucesso!");
}
public function destroy(Serie $series, Request $request)
{
/*
$serie = Serie::find($request->series);
Serie::destroy($request->series); //DELETE FROM series WHERE $request->series
*/
$series->delete();
return redirect(route('series.index'))->with('mensagem.sucesso', "Série {$series->nome} removida com sucesso!");
}
public function edit(Serie $series)
{
return view('series.edit')->with('serie', $series);
}
public function update(Serie $series, SeriesFormRequest $request)
{
$series->fill($request->all());
$series->save();
return to_route('series.index')->with('mensagem.sucesso', "Série {$series->nome} editada com sucesso!");
}
}
index.blade.php
<x-layout title="Séries">
<h1>Séries</h1>
@isset($mensagemSucesso)
<div class="alert alert-success">
{{ $mensagemSucesso }}
</div>
@endisset
<a href="{{ route('series.create') }}" class="btn btn-dark mb-3">Adicionar série</a>
<ul class="list-group">
@foreach ($series as $serie)
<li class="list-group-item d-flex justify-content-between align-items-center">
{{ $serie->nome }}
<span class="d-flex">
<a href="{{ route('series.edit'), $serie->id }}" class="btn btn-primary">Editar</a>
<form action="{{ route('series.destroy', $serie->id) }}" method="post">
@csrf
@method('DELETE')
<button class="btn btn-danger">Excluir</button>
</form>
</span>
</li>
@endforeach
</ul>
<script>
const series = {{ Js::from($series); }}
</script>
</x-layout>
edit.blade.php
<x-layout title="Editar Série">
<x-series.form :action="route('series.update', $serie->id)" :nome="$serie->nome" :update="true">
</x-layout>
form.blade.php
<form action="{{ $action }}" method="post">
@csrf
@if ($update)
@method('PUT')
@endif
<div class="mb-3">
<label for="nome" class="form-label">Nome</label>
<input type="text"
class="form-control"
name="nome"
id="nome"
@isset($nome)value="{{ $nome }}"@endisset>
</div>
<button class="btn btn-primary">Adicionar</button>
</form>
layout.blade.php
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> {{$title}} </title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
</head>
<body>
<div class="container">
<h1> {{$title}} </h1>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
{{$slot}}
</div>
</body>
</html>
web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\SeriesController;
Route::get('/', function () {
return redirect('/series');
});
Route::resource('/series', SeriesController::class)->only(['index', 'create', 'store', 'destroy', 'edit', 'update']); //rotas que temos