我正在尝试为博客上的帖子创建评论系统。我创建了一个用于上传评论的表单。 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在数据库中正确上传,文本无法保存。提前谢谢。
答案 0 :(得分:2)
你可以试试这个:
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()
。