How to use error-free forelse in the form - LARAVEL?

Asked

Viewed 1,595 times

1

Good afternoon, I have a form that it brings a database array by user_id, only it has a problem after I put the forelse it is not bringing all the data, because if it has more than one data it duplicates the form.

I do not know if I put the div in the wrong place follow the code below, At first I just wanted to pass a message if you do not have registration related to the user id

@extends('layouts.app') @Section('content')

<div class="container">
<div class="row">

    <form class="form-horizontal " id="regForm" action="{{route('renovacao.store')}}" method="POST">
        <div class="card-panel white">
            <h4 class="center">Solicitar Renovação</h4>
            <div class="row"></div>
            {{ csrf_field()}}

            <div class="row">
                @forelse($matricula as $matric)
                <div class="row">
                        <right>
                         <a>**Dados Cadastrados**</a>
                    </right>
                    <div class="row"></div>
                    <div class="row"></div>
                    <div class="col s6 m6">
                    <div class="input-field {{$errors->has('user_id') ? 'has-error' : ''}} ">
                        <label for="produto">Nome do Pai:</label>
                       <input type="text" class="form-control" name="rematricula[{{ $loop->index}}][nomerespo]" value="{{ $matric->nomedopai }}">

                    </div>
                    </div>

                    <div class="col s6 m6">
                    <div class="input-field {{$errors->has('user_id') ? 'has-error' : ''}} ">
                        <label for="produto">Nome do Aluno(a):</label>
                        <input type="text" class="form-control" name="rematricula[{{ $loop->index}}][nomealuno]" value="{{ $matric->nomealuno }}">

                    </div>
                    </div>

                </div>

                 <div class = "row">
                    <div class="col s12">

                        <a title="Voltar Para Página Principal" class="btn orange darken-4 btn-info left " href="/admin">Voltar
                            <i class="material-icons left">arrow_back_ios</i>
                        </a>

                        <button type="submit" class="btn orange darken-4 btn-info right">Confirmar
                            <i class="material-icons left">save</i>
                        </button>
                    </div>
                </div>

                @empty
                        <p>Não existe registro</p>
              @endforelse


            </div>
        </div>    
    </form>

</div>

@endsection

-- Controller that sends data to form

public function listardados(){
    $matricula = Matricula::where('user_id', Auth::id())->get();

    //dd($matricula);
    return view('dashboard.renovacao.teste', compact( 'matricula'));
}

1 answer

1


The @forelse is equal to @foreach, the difference is that that Directive has a treatment for arrays emptiness.

Example with @foreach

@section('content')
    @if($matriculas->count())
        @foreach($matriculas as $matric)
            <input type="text" value="{{ $matric->donomepai }}">
        @endforeach
    @else
        <p>Não possui matriculas.</p>
    @endif
@endsection

Example with @forelse

@section('content')
    @forelse($matricula as $matric)
        <input type="text" value="{{ $matric->nomedopai }}">
    @empty
        <p>Não possui matrículas.</p>
    @endforelse
@endsection

Blade Templates - Loops

Browser other questions tagged

You are not signed in. Login or sign up in order to post.