Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Missing parameter: serie].

Ola. Estou seguindo o beabá conforme o vídeo, mas estou travado em um problema há algumas horas e preciso de ajuda. Apesar de ninguém ter respondido dúvidas minhas até hoje, vou manter a esperança.

// USO O PHP 8.3.7 — Laravel 11.10.0

Estou na aula 2.1 (Lapidando a aplicacao / Excluindo uma série).

Quando fui adicionar ao index.blade.php o formulário para deletar as séries, dá o seguinte erro:

Missing required parameter for [Route: series.destroy] [URI: series/destroy/{serie}] [Missing parameter: serie].

O arquivo está assim:

web.php

use App\Http\Controllers\SeriesController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return redirect('/series');
});
Route::resource('/series', SeriesController::class)
    ->only('index','create','store');

Route::post('/series/destroy/{serie}', [SeriesController::class, 'destroy'])
    ->name('series.destroy');

Serie.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Serie extends Model
{
    use HasFactory;
    protected $fillable = ['nome'];
}

index.blade.php

<x-layout title="Séries">
    <a href="{{route('series.create')}}" class="btn btn-dark mb-2">Adicionar</a>

    <ul class="list-group">
        @foreach ($series as $serie)
        <li class="list-group-item d-flex justify-content-between align-items-center">
            {{ $serie->nome }}
<!-- o erro esta nesta linha abaixo -->
            <form action="{{ route('series.destroy', $serie->id) }}" method="POST">
                <button class="btn btn-danger btn-sm">x</button>
            </form>
        </li>
        @endforeach
    </ul>
</x-layout>

SeriesController.php

<?php

namespace App\Http\Controllers;

use App\Models\Serie;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class SeriesController extends Controller
{
    public function index()
    {
        $series = Serie::query()->orderBy('nome')->get();

        return view('series.index')->with('series', $series);
    }

    public function create()
    {
        return view('series.create');
    }

    public function store(Request $request)
    {
        Serie::create($request->all());

        return to_route('series.index');
    }
    public function destroy(Request $request)
    {
        dd($request->serie);
    }
}

Uma boa alma pode me ajudar? Esta eu estou perdido e não acho saida. Obrigado desde já.

1 resposta
solução!

Pooouuurra!! Achei o erro só de ler direito o que estava acontecendo. Fui tomar um café, sentei na mesa novamente para continuar tentando resolver e dai que eu vi que adicionei o {serie} no lugar errado afinal, o erro é:

Missing required parameter for [Route: series.destroy] [URI: series/destroy/{serie}] [Missing parameter: serie].

O erro está no web.php na rota eu coloquei /series/destroy/{serie} e nao tem este {serie} no final, é so até o /destroy/