Laravel评论系统仅适用于最近的帖子

时间:2014-06-10 17:28:19

标签: php mysql laravel laravel-4 blade

我最近为博客创建了评论系统。当博客中有一个帖子时,评论系统工作正常。但是,当博客上有两个帖子,并且我对FIRST帖子发表评论时,评论会显示在SECOND帖子上。类似地,如果我添加另一个帖子,那么我的博客中有三个帖子,当我评论第一篇帖子时,评论会显示在第三篇帖子下面。在同样的情况下,当我评论第二篇文章时,评论显示在第三篇文章下。这是我的代码:

/index.blade.php

@section('content')

<div class="col-md-8 col-md-offset-2">

<hr>

@foreach($posts as $post)
    <h3>{{ $post->title}}</h3>
    <p>by {{ $post->user->name }}</p>
    <img src='{{ asset($post->image_path) }}' class="img-responsive" id="blogpic"/>
    <p>{{ Str::words($post->body) }}</p>
    <p><a href="{{ action('BlogController@show', $post->id) }}">Read More...</a></p>

    <hr>

    {{ Form::open(array('action' => 'CommentController@newComment')) }}
    {{ Form::hidden('post_id', $post->id) }}

    <div class="row">
        <div class="col-md-10">
    {{ Form::text('body', null, array('class'=>'form-control')) }}
        </div>
        <div class="col-md-2">
    {{ Form::submit('Post', array('class'=>'btn btn-info')) }}
        </div>
    </div>



        <br>

    @foreach($post->comments as $comment)
    <div class="comment">
        <p><span class="bold">{{ $comment->user->name }}</span>: {{ $comment->body }}</p>
    </div>

    @endforeach

@endforeach

</div>

  @stop

这是我的新评论控制器:

    public function newComment()
{
    $comment = New Comment();
    $comment->user_id = Auth::user()->id;
    $comment->post_id = $post_id = Input::get('post_id');
    $comment->body = Input::get('body');

    Post::find($post_id)->comments()->save($comment);

    return Redirect::action('BlogController@index');
}

我很确定问题出在我的索引文件中,如果需要,我可以提供更多代码。我的评论似乎只是获得了此行中最新的ID

 {{ Form::hidden('post_id', $post->id) }}

可能出现什么问题?

提前致谢

0 个答案:

没有答案