正如标题所述,当我尝试使用@foreach($posts as $post)
时,出现错误消息$post
未定义。
我猜我可能犯了一些简单的错误或类似的错误,但我无法弄清楚问题出在哪里,所以我在这里问。
这是Laravel 5.7的全新安装。
我的web.php
看起来像这样。
Route::get('/', function () {
$posts = App\Post::all();
return view('landing', compact('posts'));
});
我在landing.blade.php
中有一个resources/views
文件,其中包括部分使用@include('partials.posts')
的文件。在resources/views/partials/
中有一个posts.blade.php
,其中有此内容。
$foreach($posts as $post)
{{ $post->title }}
$endforeach
当我在浏览器中导航至/
时,出现Undefined variable: post
错误,突出显示<?php echo e($post->title); ?>
,该错误与{{ $post->title }}
相关。
如果我将<?php dd($posts) ?>
放在@foreach
之前,那么它将返回一个包含我的虚拟帖子数组的集合,因此好像我的帖子正在传递到视图。
答案 0 :(得分:2)
使用@foreach & @endforeach
代替$foreach & $endforeach
。
因此,请使用@
而不是$
。
答案 1 :(得分:1)
尝试使用此方法,而不是为循环赋予的功能
@foreach($posts as $post)
{{ $post->title }}
@endforeach