在电影页面上显示相关的人物与评论

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

这个视频我们利用电影跟人物,还有评论之间的关系,去创建一个电影页面,在这个电影页面上,显示出跟它相关的人物,还有评论。

先去修改一下电影控制器里面的 show 方法 ... 打开 MovieController.php ... 找到 show 这个方法 ...

这个方法是处理请求查看单个资源用的 ... 它会接收到请求查看的电影的 id 号 ... 使用这个 id 号,我们可以查询出请求的电影 .. 然后把找出来的结果发送给一个视图去处理 ...

$movie 等于 .... 使用 Movie 模型 ... 因为我们需要在电影页面上,显示相关的人物,还有评论 .. 所在,这里可以使用一个 with 方法 ... 去指定一下这两个关系 ... reviews ... 还有 people ... 然后再用 find 方法去找出这部电影 ....

这样找出来的结果 ... 会包含电影相关的人物,还有评论 ... 因为我们使用了 with 这个方法 ...

public function show($id)
{
$movie = Movie::with('reviews', 'people')->find($id);

}

再去给它指定一个视图 .. return ... View . make ... 视图是 movie 目录下面的 single.blade.php 这个文件 ... 再用一个 with 方法,把上面查询出来的结果,传递给这个视图 ...

return View::make('movie.single')->with('movie', $movie);

创建视图

下面,再去创建这个视图 ... app ... views ... 在 movie 这个目录的下面,创建一个视图文件 ... 命名为 single.blade.php .... 再去编辑一下它 ...

这个视图使用 movie 目录下面的 ... layout 目录里面的 master 这个布局文件 ...

定义一个 content 区域 ...

然后在这里面,先输出电影的标题 ... 用一个 h1 标签 ... 上面添加一个 page-header 类 ...

输出的内容是从电影控制器的 show 方法里面传递过来的 movie 这个对象里面的 movie_title 这个属性 ... 它就是电影的标题 ...

<h1 class="page-header">{{ $movie->movie_title }}</h1>

然后我们再去输出跟这部电影相关的所有的人物内容 ... 先输入一个标题 ... h5 ... 人物 ... 一组无序列表标签 ... 在它里面,可以使用一个 foreach 循环,去输出相关的人物 ...

所有的相关的人物包含在 movie 对象里面的 people 这个属性里面 .. @foreach ... 括号 ... $movie->people as $people ... 在循环结束的地方,用一个 endforeach ...

在它里面,可以先输入一组列表标签 ... 列表里面的内容就是人物的名称 ... 它是在 people 的 people_name 这个属性里面。在后面,我们还可以输出这个人物在这部电影上的工作 ... 可以访问 people 的 pivot 属性里面的 job 属性 .. 表示利用中间表,也就是 movie_people 表里面的 job 这个字段 ...

在定义多对多关系的时候,我们在 Movie 模型里面,已经使用 withPivot 方法指定了可以使用 job 这个字段 ... 所以在这里,可以访问 pivot 属性里面的这个 job 属性输出在中间表里面的 job 字段的值。

<h5>人物</h5>
<ul>
@foreach ($movie->people as $people)
<li>
{{ $people->people_name }} - {{ $people->pivot->job }}
</li>
@endforeach
</ul>

预览

我们先去预览一下 ... 打开浏览器 ... 打开一个电影页面 ... 比如 id 号是 1 的电影 ... movies/1 ...

在这个页面上,会显示电影的标题 ... 还有跟它相关的人物 ...

相关评论

下面再去把跟当前电影相关的所有的评论要输出到这个页面上 ... (#返回)

先输入一个标题 .. h5 .. 评论 ... 然后是一组无序列表 ... 在它里面,同样使用一个 foreach 循环,去输出评论的内容 ... 跟这个电影相关的所有的评论内容是在 reviews 这个属性里面 ... 要输出评论的内容,可以访问 review_content 这个属性 ..

<h5>评论</h5>
<ul>
@foreach ($movie->reviews as $review)
<li>
{{ $review->review_content }}
</li>
@endforeach
</ul>

保存 ... 再去预览一下 ...

现在,在电影页面上,会显示出跟这部电影相关的人物,还有属于这部电影的所有的评论。

0:00
2:25
0:00
0:00
0:00
3:54

在电影页面上显示相关的人物与评论《 Laravel 数据库 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点