2017-08-16 8 views
0

データベースから行を取得しています。各行には2つのラジオボタンがあります。これらの値をテーブルで更新する際に問題が発生しています。私はこのエラーを取得する -Laravel update database error - パラメータが一致していません。パターンは文字列で、置換は配列です。

にpreg_replace():パラメータの不一致交換は、アレイ

@foreach($items as $item)     
    <td>{{ $item->item_title }}</td> 
    <td>{{ $item->description }}</td> 
    <td>{{ $item->price }}</td> 
    <td>{{ $item->quantity }}</td> 
    <td>{{ $item->total }}</td> 
    <td> 
     <div class='btn-group'> 
       <form action="{{url('lineManagerUpdateRequests')}}" method="post"> 

       <input type="radio" name="item_id[{{$item->request_id}}][]" value="2"> Approve 
       <input type="radio" name="item_id[{{$item->request_id}}][]" value="6"> Decline 
      </div> 
     </td>  
    @endforeach 
    <input type="submit" name="submit" class="btn btn-sm btn-danger"> 
</form> 

ありながら、パターンが文字列である。これは私のコントローラ

foreach ($request->input('item_id') as $id => $value) { 
      $update = DB::table('request_items') 
         ->where('id', $id) 
         ->update(['line_manager_remark', $value]); 

    } 
+0

をおそらく関連:https://stackoverflow.com/q/29620335/1531971 – jdv

答えて

0

である私は、ここで変更する必要があると思います、配列を提供する

->update(['line_manager_remark'=>$value]); 

ここにチェック:https://laravel.com/docs/5.4/queries#updates

+0

私はここで何を変更する必要があります? – radioactive

+0

彼はその行を変更しました。あなたがupdate()に渡したのは、2つの要素を持つ配列でした。彼は索引 "line_manager_remark"の1つの要素を持つ連想配列を渡した – ishegg

+0

代わりに '=>'シンボル、 – C2486

0

問題はあなたのhtml形式です。入力タグを以下のコードに置き換えてください。

<input type="radio" name="item_id[{{$item->request_id}}]" value="2"> Approve 
<input type="radio" name="item_id[{{$item->request_id}}]" value="6"> Decline 

item_id[{{$item->request_id}}][] htmlフォームで作成し、多次元配列を送信します。したがって、コントローラforeachの$ valueには文字列ではない配列が含まれています。

更新

は、変更の上に作成し、以下のようにあなたのupdateメソッドを編集します。

->update(['line_manager_remark'=>$value]); 
+0

両方の入力が同じ要素に現在属しています。 – C2486

+0

この回答は間違っています – radioactive

関連する問題