第一次尝试Laravel Undefined变量

时间:2016-12-29 08:09:45

标签: php laravel

今天早上发生的一个最奇怪的错误

当我第一次打开模型的显示刀片时,我得到了这个

  

未定义的变量:engs(查看:C:\ wamp64 \ www \ Form \ resources \ views \ dashboard \ placeShow.blade.php)

但是当我刷新页面或重新打开它时,一切正常

我的控制员:

public function showPlace($id)
{
    $place = Place::find($id);

    if (!$place->seen->contains(Auth::user()->id)) {
        $place = $place->seen()->save(Auth::user());
    }
    if ($place->media) {
        $media = $place->media;
        $engs = $media->where('category', 'engs');
        $heritages = $media->where('category', 'heritages');
        $estates = $media->where('category', 'estates');
        $others = $media->where('category', 'others');
        return view('dashboard.placeShow')->with(['place' => $place, 'engs' => $engs, 'heritages' => $heritages, 'estates' => $estates, 'others' => $others]);
    }else{
        return view('dashboard.placeShow')->with(['place' => $place]);
    }

我的刀片是:

<ul>
    @foreach($engs as $eng)
     <li><a target="_blank" href="/{{$eng->href}}">{{$eng->old_name}}</a></li>
    @endforeach
</ul>

问题是什么

1 个答案:

答案 0 :(得分:3)

使用下面的代码更新您的代码:

<ul>
    @if(isset($engs))
        @foreach($engs as $eng)
         <li><a target="_blank" href="/{{$eng->href}}">{{$eng->old_name}}</a></li>
        @endforeach
    @else
        <li>Records not found..!</li> 
    @endif
</ul>

我认为if ($place->media)失败时会出现此问题。