首页 > 解决方案 > 尝试在全新安装的 Laravel 5.7 的刀片模板中使用 @foreach 时出现“未定义的变量:发布”

问题描述

正如标题所说,当我尝试使用时@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其中包含部分 using @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,那么它会返回一个包含我的虚拟帖子数组的集合,所以看起来我的帖子正在被传递给视图。

dd($posts) 的结果

标签: phplaravellaravel-5laravel-bladelaravel-5.7

解决方案


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


推荐阅读