我对如何在laravel上构建views文件夹有些怀疑。例如,我们在主页中有这种结构的博客网站:
标题(我们有一个菜单:主页链接,搜索栏搜索帖子,登录和登录按钮)
然后是最后5个帖子的部分。
然后是观看次数最多的部分。
然后是一个页脚。
我们如何根据观点构建此主页?例如,我们可以这样:
-views
- layouts
- header.blade.php
- footer.blade.php
- posts
- lastposts.blade.php
- mostviewed.blade.php
- single.blade.php
- layout.blade.php
你觉得它还好吗?因为我测试这个并且它不起作用。例如,在layout.blade.php中,我有:
<!DOCTYPE html>
<html lang="en">
<head>
....
<link href="css/app.css" rel="stylesheet">
</head>
<body>
@include('layouts.nav')
@yield('lastposts')
@yield('mostviewed')
@include(layouts.footer')
</body>
</html>
当我正确访问页面时,我得到了页眉和页脚,但是@yields都没有显示任何内容。
在lastposts.blade.php中显示我拥有的最后5个帖子:
@extends('layout')
@section('lastposts')
<div>
<h4>Title</h4>
<p>Text</p>
</div>
</div>
<div>
<h4>Title</h4>
<p>Text</p>
</div>
</div>
<div>
<h4>Title</h4>
<p>Text</p>
</div>
</div>
<div>
<h4>Title</h4>
<p>Text</p>
</div>
</div>
<div>
<h4>Title</h4>
<p>Text</p>
</div>
</div>
@endsection
我对mostviewed.blade.php有相同的逻辑,但同样,@ yield('mostviewed')不显示任何内容。
你知道什么是不正确的吗?
路由文件:
Route::get('/', function () {
return view('layout');
}
我有这条路线,因为我现在只有主页。
答案 0 :(得分:1)
您创建了错误的视图。父视图是布局,它不了解大多数查看和最后一个帖子。这就是你编写@extends(&#39; layout&#39;)的原因,当你创建内容视图时,它会知道它必须从布局中扩展内容。
Route::get('/', function () {
return view('posts.mostviewed');
}