尝试在全新安装的Laravel 5.7的刀片服务器模板中使用@foreach时出现“ Undefined variable:post”

时间:2018-11-04 08:08:16

标签: php laravel laravel-5 laravel-blade 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'));
});

我在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之前,那么它将返回一个包含我的虚拟帖子数组的集合,因此好像我的帖子正在传递到视图。

The results of dd($posts)

2 个答案:

答案 0 :(得分:2)

使用@foreach & @endforeach代替$foreach & $endforeach。 因此,请使用@而不是$

答案 1 :(得分:1)

尝试使用此方法,而不是为循环赋予的功能

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