home.blade.php视图中的未定义变量$ tweet

时间:2020-05-26 15:43:15

标签: php laravel

我正在遵循Laracasts的教程,并且正在克隆Twitter。我有一个home.blade.php和一个HomeController.php文件。在HomeController中,我有一个名为index的函数,该函数调用主视图。他还发送了一个名为“ tweets”的变量。

public function index()
{
    return view('home', [
        'tweets' => App\Tweet::all()
    ]);
}

在home.blade.php文件中,我使用Blade显示变量,但是出现以下错误:Undefined variable: tweet (View: C:\wamp64\www\laravel\tweety\resources\views\home.blade.php)

这是我的home.blade.php文件:

@extends('layout')
@section('timeline')
<article>
    <div class="avatar">
        <img src="https://www.w3schools.com/w3css/img_avatar2.png" />
    </div>
    <div class="content">
        <div class="meta">
            <span class="author">
                {{ $tweet->user->name }}
            </span>
            <span class="time">
                &bullet; 10m
            </span>
        </div>
        <div class="text">
            {{ $tweet->body }}
        </div>
    </div>
</article>
@endsection

我已经在互联网上搜索了一种解决方案,但是找不到。如果您需要更多信息,请告诉我。

谢谢! 耶伦·范·雷森(Jeroen van Rensen)

1 个答案:

答案 0 :(得分:1)

$tweets是一个数组。您需要foreach循环。 它遍历数组,并且当前数组元素的每个值都分配给$tweet

尝试一下:

@extends('layout')
@section('timeline')
@foreach($tweets as $tweet)
<article>
    <div class="avatar">
        <img src="https://www.w3schools.com/w3css/img_avatar2.png" />
    </div>
    <div class="content">
        <div class="meta">
            <span class="author">
                {{ $tweet->user->name }}
            </span>
            <span class="time">
                &bullet; 10m
            </span>
        </div>
        <div class="text">
            {{ $tweet->body }}
        </div>
    </div>
</article>
@endforeach
@endsection