"Undefined variable: post" 在 Laravel 5.7 的全新安装中尝试在 blade 模板中使用 @foreach 时

"Undefined variable: post" when attempting to use @foreach in a blade template on a fresh install of Laravel 5.7

正如标题所说,当我尝试使用 @foreach($posts as $post) 时,出现 $post 未定义的错误。

我猜我可能犯了一些简单的错误或类似的错误,但我一直无法弄清楚问题出在哪里,所以我在这里问一下。

这是 Laravel 5.7 的全新安装。

我的 web.php 看起来像这样。

Route::get('/', function () {
    $posts = App\Post::all();
    return view('landing', compact('posts'));
});

我在 resources/views 中有一个 landing.blade.php 文件,其中包含使用 @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 }}.[=30= 相关]

如果我把 <?php dd($posts) ?> 放在 @foreach 之前,那么它 returns 一个 collection 和我的虚拟帖子数组,所以看起来我的帖子确实是被传递给视图。

试试这个而不是你给循环的东西

@foreach($posts as $post) {{ $post->title }} @endforeach

使用 @foreach & @endforeach 而不是 $foreach & $endforeach。 因此使用 @ 而不是 $.