刀片:Foreach循环内部未定义的变量

时间:2017-12-04 07:38:35

标签: php laravel laravel-5 foreach laravel-blade

我有一个控制器,它从我的数据库中获取用户日记的数组并将它们传递给我的视图:

Error XXX -> general-error.html

在我看来,我正在使用<?php public function readDiaries($hash) { $user = User::where('hash', $hash)->first(); $diaries = Diary::where('user_id', $user->id)->get(); return view('app.diary.readDiaries', ['diaries' => $diaries]); } 循环遍历日记。

@foreach

但我得到以下未定义的变量错误......

  

未定义的变量:日记(查看:C:\ xampp \ htdocs \ personal_projects \ Active \ diary_app \ resources \ views \ app \ diary \ readDiaries.blade.php)

为什么我的$ diary变量在<div id="diaries" class="card-columns"> @if (count($diaries) > 0) @foreach ($diaries as $dairy) {{ var_dump($diary) }} @endforeach @endif </div> 循环中未定义?

4 个答案:

答案 0 :(得分:5)

你有一个错字

@foreach ($diaries as $dairy)更改为@foreach ($diaries as $diary)

它应该有效!

答案 1 :(得分:2)

var_dump中有一些拼写错误{{var_dump($ dairy)}} 尝试使用紧凑方法传递数据进行查看,如下所示

 //return view('app.diary.readDiaries', compact('diaries'));
public function readDiaries($hash)
{
    $user = User::where('hash', $hash)
        ->first();
    $diaries = Diary::where('user_id', $user->id)
        ->get();
    return view('app.diary.readDiaries', compact('diaries'));
}

答案 2 :(得分:2)

这只是一个简单的拼写错误,

 @foreach ($diaries as $dairy)
  {{ var_dump($diary) }}
 @endforeach

在您的foreach中,您正在传递$dairy并且转储var名称为$diary chane it to

@foreach ($diaries as $dairy)
  {{ var_dump($dairy) }}
@endforeach

复制贴的Habbit有时对我们有好处...... :)

答案 3 :(得分:1)

@foreach ($diaries as $dairy)
 {{ var_dump($diary) }}
@endforeach
你在foreach中使用过($日记作为$ dairy) 但在foreach你使用($日记)

您希望将此{{var_dump($ diary)}}编辑为{{var_dump($ dairy)}} 或者你想将@foreach($ diaries作为$ dairy)编辑成@foreach($ diaries作为$ diary)