Search code examples
mysqllaravelformsmodel-view-controllerformbuilder

Invalid argument supplied for foreach() in laravel project


Hello I'm running a Laravel project and i got this error and i do not know from where, this is a part of code from my view where i created the form , it's only this because the inputs are repeating

  <div class="row"> 
        <p style="font-size: 14px;" class="ml-3 mt-1">2:</p>                        
           <div class="col-2 mb-1 pr-1 pl-1">
                                {{Form::text('gram2', '', ['class' => 'form-control category-style input-size input-size-evaluare p-1', 'id' => 'firstName']) }}
                                <div class="invalid-feedback">
                                  Valid first name is required.
                                </div>
                              </div>
                              <div class="col-2 mb-1 pl-1 pr-1">
                              {{Form::select('karate2', null, ['class' => 'custom-select d-block select-size pr-0', 'style' => 'font-size: 12px; width: 100%;', 'id' => 'country']) }}
                              </div>
                              <div class="col-2 mb-1 pr-1 pl-1">
                                {{Form::text('pietre2', '', ['class' => 'form-control category-style input-size-evaluare p-1', 'id' => 'lastName']) }}
                                <div class="invalid-feedback">
                                  Valid last name is required.
                                </div>
                              </div>
                              <div class="col-2 mb-1 pl-1 pr-1">
                                {{Form::text('aur_prelucrat2', '', ['class' => 'form-control category-style input-size-evaluare p-1', 'id' => 'lastName']) }}
                                <div class="invalid-feedback">
                                  Valid last name is required.
                                </div>
                              </div>
                              <div class="col-2 mb-1 pl-1 pr-1">
                                {{Form::text('price_per_gram2', '', ['class' => 'form-control category-style input-size-evaluare p-1', 'id' => 'lastName']) }}
                                <div class="invalid-feedback">
                                  Valid last name is required.
                                </div>
                              </div>
        </div>  

Solution

  • This line is causing the error:

    {{ Form::select('karate2', null, ['class' => 'custom-select d-block select-size pr-0', 'style' => 'font-size: 12px; width: 100%;', 'id' => 'country']) }}
    

    The 2nd argument to Form::select is an array of values it can use to create each <option>. You're passing it null, and you can do a foreach() on null

    If you simply modify this to be an empty array, it should work:

    {{ Form::select('karate2', [], [ ... ]) }}
    

    Edit: You might still need the null for the default value, but I haven't used Form::select() in quite some time, so I'm not sure.

    {{ Form::select('karate2', [], null, [ ... ]) }}