2017-05-11 13 views
1

このクエリをデータベースに保存するにはどうすればいいですか?クエリには10行のテキストボックスがありますが、データベースに保存することはできません。多分私のコントローラは間違っています。このクエリをコントローラおよびモデルに保存してデータベースに保存する方法

は、ここに私のcreate.blade.php

<script type="text/javascript"> 

      $(document).ready(function(){ 
      var x =0; 
      $(".add-row").click(function(){ 
      x++; 
       $("table > tbody").append('<input class="form-control" type="text" name="MFI" placeholder="Major Final Output" id="MFI" value="Participate in school activities">'); 

       }); //add input box 


      }); 

       $(document).on('click', '.delete-row', function(){ 
        alert("ROWS DELETED! ") 
        $(this).parent().parent().remove(); 

マイnotescontroller.phpだ

public function store(Request $request) 
{ 

    $inputData= $request->all(); 

    Note::create($inputData); 

    $ipcrId=$request->ipcr_id; 

    return redirect()->route('ipcr.show', compact('ipcrId')); 

} 

マイnote.php(モデル)

protected $fillable=['MFI','successIndicator','actualaccomplishments','distribution','Q1','E2','T3',' A4','Ave','Remarks','ipcr_id']; 

public function ipcr() 
{ 
    return $this->belongsTo(ipcr::class); 
} 
+0

私は、ボタンをクリックするたびに10個のボックスが連続して生成されるという質問があります。私は自分のデータベースに保存したいのと同じIDを持っているので、1対多の関係になります。私はクエリが1つのIDの行と多くの列に10boxesを保存できるようにそれを保存したい。私のおかげです。 –

答えて

0

ここでの主な問題は、のためにということです入力として配列名を付ける必要がある複数の行:

あなたが行うことができますあなたのコントローラで
<input type="text" name="mfi[]"> 

その後:

public function store(Request $request) { 

    $ipcr = Ipcr::find($request->ipcr_id); 

    foreach ($request->mfi as $key => $value) { 

     $ipcr->notes()->create([ 

      'mfi' => $request->mfi[$key] 
      // repeat for other fields 

     ]); 

    } 

    return redirect()->route('ipcr.show', compact('ipcrId')); 

} 

(限り、あなたはあなたのIPCRモデルの逆の関係を持っているとして):

public function notes() 
{ 
    return $this->hasMany(Note::class); 
} 

得るための非常にクリーンな方法がありますこれは完了しましたが、これはうまくいくと思います。 $ request内のフォームデータを理解するまでdd($request)を多用することをお勧めします。バリデーションも必要です。がんばろう。

+0

こんにちは、theresエラー。これを設定する方法は? NotesController.php行のFatalErrorException 54: nullのメンバー関数ipcr()を呼び出します –

関連する問題