我正在制作一个包含帖子和评论的简单博客。资源评论是帖子的嵌套资源。这是路线:
Route::resource('posts', 'PostsController');
Route::resource('posts.comments', 'CommentsController');
到目前为止,我管理所有 Post crud 并查看属于某个帖子的所有评论。
但我不知道如何为帖子创建评论。
在我的CommentsController
我有 RESTful 方法创建:
class CommentsController extends BaseController {
protected $comment;
public function __construct(Comment $comment)
{
$this->comment = $comment;
}
public function create($post_id)
{
return View::make('comments.create');
}
这是我为评论创建的视图:
@extends('master')
@section('blog')
<div class="span12 well">
<h4>Make a Comment</h4>
</div>
<div class="span12 well">
{{ Form::open(array('route' => 'comments.store')) }}
{{ Form::close() }}
</div>
@stop
但它不起作用。我收到此错误:
无法为命名路由“comments.store”生成 URL,因为这样的路由不存在。
我也尝试make('route' => 'posts.comments.store'))
并收到此错误:
缺少一些强制参数(“posts”)来生成路由“posts.comments.store”的 URL。
有人能帮助我吗?
编辑:这是我的评论模型:
class Comment extends Eloquent
{
protected $guarded = array();
public function post()
{
return $this->belongs_to('Post');
}
}
这是我的帖子模型:
class Post extends Eloquent
{
protected $guarded = array();
public static $rules = array(
'title' => 'required',
'body' => 'required');
public function comments()
{
return $this->hasMany('Comment');
}
}