Olá, quando eu edito uma série, o sistema até modifica o nome, mas cria um novo registro com o novo nome e mantém o nome anterior em outro registro. Exemplo: Tenho a série "XPTO" e clico para editá-la. Daí, ao editar para ABCD, ele deixa a série "XPTO" intacta e cria uma outra ABCD, mostrando a mensagem "Série ABCD editada com sucesso". Onde estou errando? Obs.: Estou passando as flashMessages com o put porque o flash aqui dá erro e informa que o método flash não existe em session.
CONTROLLER
public function store(Request $request) {
$serie = Serie::create($request->all());
$request->session()->put('success', "Série '{$serie->nome}' criada com sucesso!");
return redirect()->route('series.index')->with('success', "Série '{$serie->nome}' criada com sucesso!");
}
public function update(Serie $serie, Request $request) {
$serie->fill($request->all());
$serie->save();
return redirect()->route('series.index')->with('success', "Série '{$serie->nome}' editada com sucesso!");
}
CREATE.BLADE.PHP
<x-layout title="Nova Série">
<a class="btn btn-dark" href="{{ route('series.index') }}">
<< Voltar</a>
<x-series.form :action="route('series.store')" />
</x-layout>
EDIT.BLADE.PHP
<x-layout title="Editar Série '{{ $serie->nome }}'">
<a class="btn btn-dark" href="{{ route('series.index') }}">
<< Voltar</a>
<x-series.form action="{{ route('series.update', $serie->id) }}" :nome="$serie->nome" />
</x-layout>
FORM.BLADE.PHP
<form action="{{ $action }}" method="post" class="mt-5 form-group">
@csrf
@isset($nome)
@method('PUT')
@endisset
<label for="nome" class="form-label">Nome:</label>
<input type="text" name="nome" id="nome" class="form-control"
@isset($nome) value="{{ $nome }}" @endisset>
<button type="submit" class="btn btn-primary mt-3 py-2 px-5">
@if (@isset($nome))
Editar
@else
Adicionar
@endif
</button>
</form>
ROUTES
Route::controller(SeriesController::class)->group(function () {
Route::get('/series', 'index')->name('series.index');
Route::get('/series/create', 'create')->name('series.create');
Route::get('series/edit/{idSerie}', 'edit')->name('series.edit')->whereNumber('idSerie');
Route::post('/series/store', 'store')->name('series.store');
Route::put('/series/update/{idSerie}', 'update')->name('series.update')->whereNumber('idSerie');
Route::delete('/series/destroy/{idSerie}', 'destroy')->name('series.destroy')->whereNumber('idSerie');
});