2016-06-20 12 views
0

こんにちは、私はajaxでCRUDをやっていますが、私は店のコメントに問題があります。 は、私はこのエラーがあります:Laravel 5.1 - ajaxでクルー

QueryException in Connection.php line 655: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'user_id' cannot be null (SQL: insert into comments (content , user_id , product_id , article_id , updated_at , created_at) values (my comment, , , , 2016-06-20 10:37:57, 2016-06-20 10:37:57))

私は、テキスト「私のコメント」とのコメントを保存するためにしようと試みました。私の入力 "コンテンツ"は私のコントローラに渡されますが、 "article_id"、 "user_id"、 "product_id"のような隠れた入力は私のコントローラに渡されません。

CommentController:

public function store(Request $request) 
    { 

     if($request->ajax()){ 
      $comment = new Comment(); 
      $comment->content = $request->input('content'); 
      $comment->user_id = $request->input('user_id'); 
      $comment->product_id = $request->input('product_id'); 
      $comment->article_id = $request->input('article_id'); 

      $comment->save(); 


      return response()->json([ 

       "message" => "Comment pubblished!" 
      ]); 
     } 
} 

フォームコメント記事:へ

$("#commento").click(function(){ 

    var dato= $("#content").val(); 
    var dato2= $("#user_id").val(); 
    var dato3= $("#article_id").val(); 
    var dato4= $("#product_id").val(); 
    var route = "http://localhost:8000/comment"; 
    var token = $("#token").val(); 

    $.ajax({ 
     url: route, 
     headers:{'X-CSRF-TOKEN':token}, 
     type: 'POST', 
     dataType: 'json', 
     data:{ 
      content: dato, 
      user_id: dato2, 
      article_id: dato3, 
      product_id: dato4 
     }, 


    }); 

}); 
+0

タイプを変更しようとするとテキストエリアから隠されたコンテンツの「内容」を確認し、何が起こるかを確認します。コントローラに渡すかどうか –

+0

もし私が隠しに変えれば、私のテキストはコミッションを書くことができます。はい、私のコントローラにコメントテキストが渡されますが、user_idのように隠された他の入力は渡されませんでした。あなたがエラーで見られるかもしれないが、おそらくcomment.jsの問題 –

+0

警告するとどうなるのですか(dato2);クリックイベントで? – Frisbetarian

答えて

0

変更隠しフィールド:

{!! Form::open(['route'=>'comment.store'])!!} 



           <div class="form-group"> 
            <label for="reply-text" class="sr-only">Commenta</label> 


            {!! Form::textarea('content', null, ['id'=>'content','class'=>'form-control','rows'=>'3', 'placeholder'=>'Commenta','required'])!!} 


           </div> 
           <input type="hidden" id="token" name="_token" value="{{ csrf_token() }}"> 
           {!! Form::hidden('user_id', Auth::user()->id, null,['id'=>'user_id','class' =>'form-control'])!!} 

           {!! Form::hidden('article_id', $article->id, null,['id'=>'article_id','class' =>'form-control'])!!} 

           {!! Form::hidden('article_slug', $article->slug, null,['id'=>'article_slug','class' =>'form-control'])!!} 

           {!!link_to('#', $title='Comment post', $attributes =['id'=>'commento', 'class'=>'btn btn-lg btn-dark btn-outline'], $secure = null)!!} 

{!! Form::close()!!} 

comment.js

{!! Form :: hidden( 'user_id'、Auth :: user() - > id、 '' id '=>' user_id '、' class '=>'フォームコントロール '))}

{! ! Form :: hidden( 'article_id'、$ article-> id、 'id' => 'article_id'、 'class' => 'フォームコントロール'))}

{!! Form :: hidden( 'article_slug'、$ article-> slug、 '' id '=>' article_slug '、' class '=>'フォームコントロール '))}

+0

Form :: hiddenのパラメータに余分なnullを追加しました {{フォーム:: hidden (名前、値、属性の配列)} –

+0

素晴らしい!あなたは歓迎です:) –