在电影页面上我们可以添加一个发表评论的表单,表单里面有一个文本区域字段 ... 还有一个发表评论的按钮 ... 在文本区域里面输入内容,点击发布评论,可以保存评论内容,同时设置好它跟电影之间的关系,所以,会直接在电影页面上显示出评论的内容。
实现这个功能,我们得去设计一个这样的表单,还有去添加一条路由,再创建一个处理评论的控制器。
下面,我们先去准备一个表单 ... 在显示电影页面的这个视图文件里面,可以去添加这个表单 ...
先用 Form 类的 open 方法,添加一个 form 标签的开始的那个标签 ... 给这个方法添加一个 array 参数 ... 然后设置一下相关的属性 ...
首先设置一下 url 属性 ... 也就是点击提交按钮以后,把这个请求发送到的那个地址 ... 这个地址应该是 movies 斜线 ... 后面加上电影的 id 号 ... 接着是 reviews ...
再设置一下表单的提交的方法 ... 使用一个 method ... 设置成 POST ... 这样提交这个表单以后,处理评论的控制器里面的 store 方法,会接收到这个请求 ...
这里为了好看一点,我们再去添加一个 css 类 ... 这个类的样式是 bootstrap 框架提供的 ...
{{ Form::open(
array(
'url' => 'movies/' . $movie->movie_id . '/reviews',
'method' => 'POST',
'class' => 'form-horizontal'
)) }}
表单结束的地方,用一个 Form 类的 close 方法 ...
{{ Form::close() }}
然后在里面,再去添加两个表单元素 ... 先要添加一个文本区域,可以输入评论的内容 ... 给这个文本区域先去添加一个 label ... 这个表单的设计是 bootstrap 框架提供的 .. 所以,需要一点额外的 html 标签,还有css类 ...
用 Form 类的 label 方法去添加标签 ... 名字是 review_content ... 标签上的文字是 评论内容 ... 再给它上面添加几个 css 类 ...
然后再去添加文本区域元素 ... 用的是 Form 类的 textarea 方法 ... 这个元素叫做 review_content ... 可以跟评论这个数据表里面的存储评论内容的那个字段的名称一样 ... 也去给它添加几个 css 样式 .. 再设置一下它的 rows 属性 ... 指定一下它的高度 ..
<div class="form-group">
{{ Form::label('review_content', '评论内容', array('class' => 'col-sm-2 control-label')) }}
<div class="col-sm-10">
{{ Form::textarea('review_content', '' , array('class' => 'col-sm-10 form-control', 'rows' => '3'))}}
</div>
</div>
最后,我们再去添加一个 发表评论 的按钮 ... 先加上一点额外的 html 标签 ... 然后用 Form 类的 submit 方法去添加这个提交的按钮 ..
在这个按钮上,再去添加两个 css 类 ...
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
{{ Form::submit('发表评论', array('class' => 'btn btn-default')) }}
</div>
</div>
完成以后,保存一下 .. 回到浏览器 .. 打开一个电影内容的页面 ... movies/1
在这个页面的下面 ... 会显示一个提交评论用的表单 ...