1
resposta

[Dúvida] ERRO: syntax error, unexpected end of file, expecting

Create.blade.php:

<x-layout title="Nova Série">
    <form action="" method="POST">
        <label for="nome">Nome:</label>
        <input type="text" name="nome" id="nome">
    </form>
</x-layout>

index.blade.php:

<x-layout title="Séries">
    <a href="/series/criar">Adicionar Série</a>
    <ul>
        @foreach ($series as $serie)
            <li>{{ $serie }}</li>
        @endforeach
    </ul>
</x-layout>

SeriesController:

<?php

namespace App\Http\Controllers;
use Illuminate\View\View;
use Illuminate\Http\Request;

class SeriesController extends Controller
{
    public function index(Request $request)
    {

        $series = [
            'Doctor House',
            'Breaking Bad',
            'Flash',
            'Grey\'s Anatomy',
            'The boys',
        ];

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

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

Olá, Sergio!

Obrigado por postar a sua dúvida e os códigos. Eles são muito úteis para identificar o problema.

O erro syntax error, unexpected end of file, expecting em PHP/Blade geralmente acontece quando um bloco de código não é fechado corretamente. No seu caso, o problema está na view Create.blade.php.

Existem dois pontos que precisam ser corrigidos:

A diretiva Blade de fechamento: A sua x-layout precisa ser fechada com a diretiva @endcomponent.

O token CSRF: O Laravel exige que todos os formulários com o método POST tenham um token de segurança para evitar ataques. Isso é feito com a diretiva @csrf.

O código correto para o seu Create.blade.php deve ser este:

<x-layout title="Nova Série">
    <form action="/series/criar" method="POST">
        @csrf
        <label for="nome">Nome:</label>
        <input type="text" name="nome" id="nome">
        <button type="submit">Adicionar</button>
    </form>
</x-layout>

Note que eu adicionei o @csrf e o action no seu formulário, além de um botão de submit para que a requisição seja enviada.

Com essas alterações, o erro de sintaxe deverá desaparecer e o seu formulário funcionará como esperado.

Espero que essa dica ajude! Qualquer outra dúvida, é só me chamar.