【问题标题】:Laravel update database error - Parameter mismatch, pattern is a string while replacement is an arrayLaravel 更新数据库错误 - 参数不匹配,模式是字符串,而替换是数组
【发布时间】:2017-08-17 01:14:56
【问题描述】:

我正在从数据库中获取行。每行有 2 个单选按钮。我在更新表格中的这些值时遇到问题。我收到此错误 -

preg_replace():参数不匹配,pattern是字符串而replacement是数组

@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]);

   }

【问题讨论】:

标签: php mysql laravel-5


【解决方案1】:

我觉得你这里需要改一下,提供数组

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

在这里查看:https://laravel.com/docs/5.4/queries#updates

【讨论】:

  • 我应该在这里改变什么?
  • 他改变了那条线。你传递给 update() 的是一个包含两个元素的数组;他传递了一个具有索引“line_manager_remark”的一个元素的关联数组
  • =&gt; 符号代替 ,
  • 你在$request-&gt;input('item_id') , $id and in $value得到了什么?
【解决方案2】:

问题出在您的 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-&gt;request_id}}][] 在您的 html 表单中创建并提交多维数组。所以控制器 foreach 中的 $value 包含一个数组而不是字符串。

更新

进行上述更改并编辑您的更新方法如下:

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

【讨论】:

  • 两个输入现在属于同一个元素。
猜你喜欢
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
  • 2017-03-26
  • 1970-01-01
  • 2019-05-18
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多