1
resposta

Undefined variable $acion

Boa noite, não consigo entender onde está o erro ao tentar carregar um component form.

  <form action="{{ $acion }}" method="post">
        @csrf
        <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="{{ $nome }}" @endisset>
        </div>

        <button type="submit" class="btn btn-primary">Adicionar</button>
    </form>
<!doctype html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{{ $title }} - Controle de Séries</title>
    <link rel="stylesheet" href="{{ asset('css/app.css') }}">
</head>
<body>
<div class="container">
    <h1>{{ $title }}</h1>
    {{ $slot }}
</div>
</body>
</html>
<x-layout title="Nova Série" >
@if ($errors->any())
    <div class="p-4 mb-4 text-sm text-red-800 rounded-lg bg-red-50 dark:bg-gray-800 dark:text-red-400" role="alert">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
    <x-form :action="route('series.store')" :nome="old('nome')"/>
</x-layout>

E a rota...

Route::post('/series/salvar','store')->name('series.store');

quando tento carregar a página que está o código do o erro Undefined variable $acion aparece

(https://cdn1.gnarususercontent.com.br/1/6079299/1568445c-162e-4600-8ead-6fc1bc4d48f2.png)

1 resposta

Oi Ighor, boa tarde!

Pelo que você descreveu, parece que o erro "Undefined variable $acion" está ocorrendo porque a variável $acion não foi definida no seu componente <x-form>. Na verdade, você está passando a variável action para o componente, mas no seu template de formulário, você está tentando acessar $acion (note a falta da letra "t").

Aqui está o que você pode fazer para corrigir isso:

  1. Corrigir o nome da variável no template do componente:

    Altere {{ $acion }} para {{ $action }} no seu template de formulário:

    <form action="{{ $action }}" method="post">
        @csrf
        <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="{{ $nome }}" @endisset>
        </div>
    
        <button type="submit" class="btn btn-primary">Adicionar</button>
    </form>
    
  2. Certifique-se de que está passando a variável corretamente ao chamar o componente:

    No seu código, você já está passando a variável action corretamente:

    <x-form :action="route('series.store')" :nome="old('nome')"/>
    

    Então, a correção no template do componente deve resolver o problema.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.