Opa, Estou enfrentando problemas para editar uma série. Ele redireciona para a URL correta, mas aponta que o método utilizado não está correto:
form.blade.php
<form action="{{ $action }}" method="post">
@csrf
@isset($nome)
@method('PUT')
@endisset
<div class="mb-3">
<label for="nome" class="form-label">Nome:</label>
<input type="text" id="nome" name="nome" class="form-control" @isset($nome)value="{{$serie->nome}}" @endisset>
</div>
<button type="submit" class="btn btn-primary">Adicionar</button>
</form>
web.php
Route::get('/', function () {
return view('welcome');
});
Route::get('/series', [SeriesController::class, 'index'])->name('series.index');
Route::get('/series/criar', [SeriesController::class, 'create'])->name('series.create');
Route::post('/series/salvar', [SeriesController::class, 'store'])->name('series.store');
Route::delete('/series/destroy/{serie}', [SeriesController::class, 'destroy'])->name('series.destroy');
Route::get('/series/edit/{serie}', [SeriesController::class, 'edit'])->name('series.edit');
Route::put('/series/update/{serie}', [SeriesController::class, 'update'])->name('series.update');
SerieController.php
class SeriesController extends Controller
{
public function index(Request $request)
{
$series = Serie::query()->orderBy('nome')->get();
$mensagemSucesso = session('mensagem.sucesso');
return view('series.index')->with('series', $series)->with('mensagem.sucesso', $mensagemSucesso);
}
public function create()
{
return view('series.create');
}
public function store(Request $request)
{
$serie = $request->all();
Serie::create($serie);
return redirect()->route('series.index')->with('mensagem.sucesso', 'Série Inserida com sucesso!');
}
public function destroy(Request $request) {
Serie::destroy($request->serie);
return redirect()->route('series.index')->with('mensagem.sucesso', 'Série apagada com sucesso!');
}
public function edit(Serie $serie, Request $request) {
return view('series.edit')->with('series', $serie);
}
public function update(Serie $series, Request $request) {
$series->nome = $request->nome;
$series->save();
return redirect()->route('series.index')->with('mensagem.sucesso', 'Série atualizada com sucesso!');
}
}
Também estou enfrentando um probleminha chato no meu index, onde não consigo exibir minhas Flash Messages, podem ajudar com isso também?
index.blade.php
<x-layout title="Séries">
<a href="{{route('series.create')}}" class="btn btn-dark mb-2">Adicionar</a>
@isset( $mensagemSucesso ))
<div class="alert alert-success">
{{ $mensagemSucesso }}
</div>
@endisset
<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 btn-sm">
E
</a>
<form action="{{route('series.destroy', $serie->id)}}" method="post">
@csrf
@method('DELETE')
<button class="btn btn-danger btn-sm">X</button>
</form>
</span>
</li>
@endforeach
</ul>
</x-layout>
Já troquei de @isset para @if e tentei outra lógica, mas a mensagem não é exibida de nenhuma forma.
Estou usando PHP 8.2.4 e Laravel 9.52.10.
Agradeço desde já.