Post リソースと Comment ネストされたリソースを含む単純なブログがあります。今までは、投稿に属するすべてのコメントを表示し、投稿の新しいコメントを作成できました。
特定のコメントを削除できるようにしたいのですが、どういうわけか間違いを犯しています。
これは、comments.index
すべてのコメントを含むビューです。
@extends('master')
@section('blog')
@foreach($comments as $comment)
<div class="span11 well">
<ul>
<li><strong>Body: </strong> {{ $comment->body }} </li>
<li><strong>Author: </strong> {{ $comment->author }}</li>
</ul>
{{ Form::open(array('method' => 'DELETE', 'route' => array('posts.comments.destroy', $post_id), $comment->id)) }}
{{ Form::submit('Delete', array('class' => 'btn btn-danger')) }}
{{ Form::close() }}
</div>
@endforeach
{{ link_to_route('posts.index', 'Back to Post index') }}
これは、インデックスを実行しているときに発生するエラーです。ルート「posts.comments.destroy」のパラメーター「コメント」は、対応する URL を生成するために「[^/]++」(「」が指定) と一致する必要があります。
これは CommentsController 内の Index メソッドです。
public function index($post_id)
{
$comments = Post::find($post_id)->comments;
return View::make('comments.index', compact('comments'))->with('post_id', $post_id);
}
これは、CommentsController 内の Destroy メソッドです。
public function destroy($post_id, $comment_id)
{
$comment = $this->comment->find($comment_id)->delete();
return Redirect::route('posts.comments.index', $post_id);
}
誰かが私がどこで間違いを犯しているのか教えてもらえますか?
これはルートです:
Route::resource('posts', 'PostsController');
Route::resource('posts.comments', 'CommentsController');