首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用数组更新多行

用数组更新多行
EN

Stack Overflow用户
提问于 2020-04-25 12:32:19
回答 1查看 71关注 0票数 0

我有发票表格,想要更新数据。我试过了但得到了下面的错误,

不存在Illuminate\Database\Eloquent\Collection::update

方法。

但是当我使用$match = Stock::where('inv_no','=',$inv_no)->first();时,它在一行上更新,而我有两行或多行。

我能做些什么来更新这些数据?

控制器。

代码语言:javascript
复制
public function update(Request $request, $inv_no)
{
    $data = $request->all();
    // dd($data);
    // for($i = 0; $i<$request->pid; $i++)
    foreach ($request->pid as $i => $dt) {
        $match = Stock::where('inv_no', '=', $inv_no)->get();
        $match->update(['pid' => $request->pid[$i],
            'qty' => $request->qty[$i],
            'inv_no' => $request->inv_no,
            'user_id' => Auth::user()->id,
            'supplierName' => $request->supplierName,
            'receiptNumber' => $request->receiptNumber,
            'truckNumber' => $request->truckNumber,
            'driverName' => $request->driverName,
            'remark' => $request->remark,
        ]);
        // dd($match);

        return $this->index();
    }
}

我的$request->all()

代码语言:javascript
复制
array:8 [▼
    "_token" => "6YdueIejLzorveQnzEaG8Fx5eYH9Lk1qcL1LQXya"
    "supplierName" => "DAR ERICA 3"
    "receiptNumber" => "5555KK"
    "truckNumber" => "T 500 FGT"
    "driverName" => "JOHN EMMA"
    "remark" => "OK"
    "pid" => array:2 [▼
        0 => "2"
        1 => "1"
    ]
    "qty" => array:2 [▼
        0 => "100"
        1 => "100"
    ]
]
EN

回答 1

Stack Overflow用户

发布于 2020-04-25 12:42:45

这是你问题的解决方案。还可以对与给定查询匹配的任意数量的模型执行更新。在本例中,所有处于活动状态且目的地为圣地亚哥的航班都将被标记为延迟:

代码语言:javascript
复制
App\Flight::where('active', 1)
          ->where('destination', 'San Diego')
          ->update(['delayed' => 1]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61425678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档