【发布时间】:2013-08-14 15:56:31
【问题描述】:
我正在制作一个包含帖子和 cmets 的简单博客。资源评论是帖子的嵌套资源。这是路线:
Route::resource('posts', 'PostsController');
Route::resource('posts.comments', 'CommentsController');
到目前为止,我管理所有 Post crud 并查看属于某个帖子的所有 cmets。
但我不知道如何为帖子创建评论。
在我的 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
但它不起作用。我收到此错误:
无法为命名路由“cmets.store”生成 URL 路线不存在。
我也尝试make('route' => 'posts.comments.store')),我得到这个错误:
缺少一些强制参数(“posts”)来生成 URL 路由“posts.cmets.store”。
有人可以帮帮我吗?
编辑: 这是我的评论模型:
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');
}
}
【问题讨论】:
标签: php nested laravel laravel-4 blogs