Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel表单文本未上载到数据库_Php_Mysql_Laravel_Laravel 4_Blade - Fatal编程技术网

Php Laravel表单文本未上载到数据库

Php Laravel表单文本未上载到数据库,php,mysql,laravel,laravel-4,blade,Php,Mysql,Laravel,Laravel 4,Blade,我正在尝试为博客上的帖子创建一个评论系统。我创建了一个上传评论的表单。表中正确填充了user_id和post_id列,但是,在输入文本并提交时,body列为空。我定义了一种关系,一篇帖子有很多评论。此外,我还定义了一个用户有许多注释。这是我的密码: //commentcontroller.php public function newComment(){ $id=Auth::id(); $comment = New Comment(); $

我正在尝试为博客上的帖子创建一个评论系统。我创建了一个上传评论的表单。表中正确填充了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);
}
表格:



@foreach($posts作为$post) {{$post->title} 通过{{$post->user->name}

image_path)}}'class=“img responsive”id=“blogpic”/ {{Str::words($post->body)}


//评论区 {{Form::open(数组('action'=>)CommentController@newComment“,”文件“=>true”)} {{Form::textarea('body',null,array('class'=>'Form-control'))} {{Form::hidden('post_id',$post->id)}

{{Form::submit('Post')} @endforeach
我现在还不关心显示评论,只是把它们上传到数据库。用户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()

感谢您的回复,但是Laravel在post->comments()->save($comment)时抛出了一个解析错误;线路。会出什么问题?谢谢,文本现在上传到数据库。但出于某种原因,它将每个post_id设置为2。为什么会这样?不确定,可能是关系中缺少配置,或者存储中插入的数据不正确,请在从表中删除记录后重试,然后从头开始。我只是截断了post表,然后它再次工作!谢谢你的帮助!
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);
}