繁体   English   中英

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

[英]Blade: Undefined Variable Inside Foreach Loop

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

<?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循环遍历日记。

<div id="diaries" class="card-columns">
    @if (count($diaries) > 0)
        @foreach ($diaries as $dairy)
            {{ var_dump($diary) }}
        @endforeach
    @endif
</div>

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

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

为什么在$ @foreach循环中未定义$ diary变量?

你有错字

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

它应该工作!

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

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

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

在您的foreach中,您要传递$dairy并转储var名称为$diary

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

复制粘贴的习惯有时对我们有好处... :)

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

您在foreach中使用了($ diaries作为$ dairy),但是在foreach中使用了($ diary)

您想要将此{{var_dump($ diary)}}编辑为{{var_dump($ dairy)}},或者您想要将@foreach($ diaries作为$ dairy)编辑为@foreach($ diaries作为$ diary)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM