为foreach()Laravel 5.2提供了无效的参数

时间:2018-12-25 08:59:18

标签: laravel

我为foreach()laravel 5.2提供了一个错误的无效参数

这是我的控制器

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'));
}

这是我的视图

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

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

@endforeach

2 个答案:

答案 0 :(得分:0)

@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

答案 1 :(得分:0)

@foreach中传递的参数应该是Collection类或数组的实例。

现在,您正在传递$ admission-> dossiersocials,它似乎是$ admission实例中的一个属性,最有可能是字符串,整数或布尔值。 所以这可能是问题的可能原因。

如果dossiersocials()在准入模型中是雄辩的关系,那么请确保它返回数组或集合实例。

此外,您可以将@foreach循环用这样的@if()语句包围

@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

希望这会有所帮助。