2017-02-23 14 views
1

(Laravelが説得力を持つ新たな行を作成し)、そしてDBテーブルにデータを挿入し、次のコードは良好に動作SQLSTATEは[HY000]:一般的なエラー:1364私はAJAXからの要求を取るコントローラがLaravelで

 $.ajax({ 
      async: false, 
      url: {{ route(updateFormcoords) }}, 
      headers: {"X-CSRF-TOKEN": token}, 
      type: 'POST', 
      dataType: 'json', 
      data: {field_name:boxes[i].field_name, x: x, y: y, w: w, h: h, r: r, shape: boxes[i].shape, fill: boxes[i].fill.substring(1), multiMark: boxes[i].multiMark, q_id: boxes[i].q_id, q_option: boxes[i].q_option, _token: token}   
     }); 

を-and最終的ROUTは、以下れる

:-Laravelコントローラ機能

public function updateFormcoords(Request $data, Form $form) 
{ 
    if ($data->ajax()){ 
     $formcoord=new Formcoord; 
     $formcoord->field_name=$data->input('field_name');   
     $formcoord->x=$data->input('x'); 
     $formcoord->y=$data->input('y'); 
     $formcoord->w=$data->input('w'); 
     $formcoord->h=$data->input('h'); 
     $formcoord->r=$data->input('r'); 
     $formcoord->shape=$data->input('shape'); 
     $formcoord->fill=$data->input('fill'); 
     $formcoord->q_id=$data->input('q_id'); 
     $formcoord->q_option=$data->input('q_option');*/ 
     $form->formcoords()->save($formcoord); 
    } 
} 

-theのAJAXリクエストは以下であります3210

Route::post('/createform/{form}/update', ['as' => 'updateFormcoords', 'uses' =>'[email protected]']); 

これはすべてうまくいきますが、実際には$ request-> all()ですべてのフィールドを作成する必要があるので、フィールドのフィールドを書き留める必要はありませんDBは、他の言葉では、これは私がしようとしているものです:

public function updateFormcoords(Request $data, Form $form) 
    { 
     if ($data->ajax()){ 
      $formcoord=new Formcoord; 
      $formcoord->create($data->all()); 
      $form->formcoords()->save($formcoord); 
     } 
    } 

が、その後、私はLaravelの雄弁がいっぱいになっていたと思ったので、次のエラー

"SQLSTATE[HY000]: General error: 1364 Field 'form_id' doesn't have a default value (SQL: insert into formcoords (field_name , x , y , w , h , r , shape , fill , q_id , q_option , updated_at , created_at) values (asdf, 0.08479087452471483, 0.018527667984189724, 0.09125475285171103, 0.06027667984189724, 0, 10, 91e57b, 0, 0, 2017-02-23 16:13:00, 2017-02-23 16:13:00))"

なった私は理解していません親DBテーブルに行を保存するときにform_idフィールドが自動的に変更されるvar iable(コード行 "$ form-> formcoords() - > save($ formcoord)"にあります。 多くのご協力をいただきありがとうございます

よろしくお願いいたします。

答えて

1

作成しないで、作成は行の作成を試みますが、まだそれをどのフォームにも関連付けていません。

の操作を行います。

$formcoord=new Formcoord($data->all()); 
$form->formcoords()->save($formcoord); 
+0

どうもありがとう、それは今完璧に動作し、私はちょうどlaravelを使い始めるよ、本当にあなたの助けに感謝 –

関連する問題