我正在遵循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">
• 10m
</span>
</div>
<div class="text">
{{ $tweet->body }}
</div>
</div>
</article>
@endsection
我已经在互联网上搜索了一种解决方案,但是找不到。如果您需要更多信息,请告诉我。
谢谢! 耶伦·范·雷森(Jeroen van Rensen)
答案 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">
• 10m
</span>
</div>
<div class="text">
{{ $tweet->body }}
</div>
</div>
</article>
@endforeach
@endsection