Blade:Foreach 循环内未定义的变量
Posted
技术标签:
【中文标题】Blade:Foreach 循环内未定义的变量【英文标题】:Blade: Undefined Variable Inside Foreach Loop 【发布时间】:2018-05-17 15:15:30 【问题描述】:我有一个控制器,它从我的数据库中获取用户日记的数组并将它们传递给我的视图:
<?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>
但我收到以下未定义变量错误...
未定义变量:diary(查看:C:\xampp\htdocs\personal_projects\Active\diary_app\resources\views\app\diary\readDiaries.blade.php)
为什么我的 $diary 变量在 @foreach
循环中未定义?
【问题讨论】:
只是打错了 只是拼写错误 foreach$dairy
和 vardump $diary
也许只是将其标记为错字?
【参考方案1】:
你有错别字
将@foreach ($diaries as $dairy)
更改为@foreach ($diaries as $diary)
它应该可以工作!
【讨论】:
萨普内什,谢谢!!我马上再煮一杯(更浓的)咖啡,这种事情还为时过早!【参考方案2】:var_dump 使用 var_dump($dairy) 有一些错字 尝试使用compact方式传递数据查看如下图
//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'));
【讨论】:
【参考方案3】:@foreach ($diaries as $dairy)
var_dump($diary)
@endforeach
你在 foreach 中使用了 ($diaries as $dairy) 但是在 foreach 中你使用了 ($diary)
你想编辑这个 var_dump($diary) 到 var_dump($dairy) 或者你想编辑 @foreach ($diaries as $dairy) 到 @foreach ($diaries as $diary)
【讨论】:
【参考方案4】:这只是一个简单的拼写错误,
@foreach ($diaries as $dairy)
var_dump($diary)
@endforeach
在您的 foreach 中,您传递 $dairy
并且转储变量名称为 $diary
改成
@foreach ($diaries as $dairy)
var_dump($dairy)
@endforeach
复制粘贴的习惯有时对我们有好处... :)
【讨论】:
以上是关于Blade:Foreach 循环内未定义的变量的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:无法读取 Vue.js 中 foreach 内未定义的属性“详细信息”
淘汰赛 JS 选择初始值在 foreach 循环内未正确显示