我正在尝试为博客上的帖子创建评论系统。我创建了一个用于上传评论的表单。在表中正确填充了user_id和post_id列,但是,在输入文本并提交时,body列为空。我定义了一个帖子有很多评论的关系。另外,我定义了一个用户有很多注释。这是我的代码:

//commentcontroller.php

public function newComment(){

        $id=Auth::id();

        $comment = New Comment();

        $comment->user_id=$id;
        $comment->post_id=Input::get('post_id');
        $comment->body=Input::get('body');

        post->comments()->save($comment);
}


形成:

<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>
            //COMMENT AREA
    {{ Form::open(array('action' => 'CommentController@newComment', 'files'=>true)) }}
            {{ Form::textarea('body', null, array('class'=>'form-control')) }}
    {{ Form::hidden('post_id', $post->id) }}

    <br>

    <br>


    {{ Form::submit('Post') }}

@endforeach

 </div>


我还不关心显示评论,只是将它们上传到数据库。 user_id和post_id已正确上传到数据库中,但文本没有保存。提前致谢。

最佳答案

您可以尝试以下方法:

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);
}


注意使用Auth::user()->id代替Auth::id()

关于php - Laravel表单文本未上载到数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24129490/

10-10 05:28