sahaltx
sahaltx

Reputation: 1

Invalid argument supplied for foreach() laravel 5.2

i have an error Invalid argument supplied for foreach() laravel 5.2

this is my Controller

public function cassocialshow(Request $request, $id)
{
    if(!in_array(\Auth::user()->role, ['validation','guichet'])) return redirect()->back();
    $admission = Admission::findOrFail($id);
    //dd($admission);

    return view('admissions.cassocialshow', compact('admission'));
}

and this is my View

 @foreach($admission->dossiersocials as $dossiersocial)
                        <tr>
                            <td>{{$dossiersocial->id}}</td>

                <td>{{$dossiersocial->age}}</td>
                <td>{{$dossiersocial->sexe}}</td>
                <td>{{$dossiersocial->nationalite}}</td>

@endforeach

Upvotes: 0

Views: 119

Answers (2)

Raj
Raj

Reputation: 421

The argument passed in @foreach should be an instance of Collection Class or an Array.

Now you are passing $admission->dossiersocials which seems like an attribute in $admission instance, which is most likely a string, integer or a boolean value. so this could be the possible reason for the problem.

And if dossiersocials() is an eloquent relation in Admission Model, then please ensure it return an array or collection instance.

furthermore, you can surround the @foreach loop with an @if() statement like this

@if(!empty($admission->dossiersocials) && (is_array($admission->dossiersocials) || $admission->dossiersocials instanceof \Illuminate\Support\Collection))
    @foreach($admission->dossiersocials as $dossiersocial)
        // Put you code here
    @endforeach
@endif

Hope this will help.

Upvotes: 0

Hamid
Hamid

Reputation: 384

@if(isset($admission->dossiersocials))
@foreach($admission->dossiersocials as $dossiersocial)
                        <tr>
                            <td>{{$dossiersocial->id}}</td>

                <td>{{$dossiersocial->age}}</td>
                <td>{{$dossiersocial->sexe}}</td>
                <td>{{$dossiersocial->nationalite}}</td>
@endforeach
@endif

Upvotes: 0

Related Questions