如何在Laravel中使用单个值更新多行?

时间:2019-06-21 06:27:05

标签: php laravel

我是laravel的初学者,我想使用一个输入字段来更新多行。

我的数据库记录:

enterage description here

对于一个实例,我的输入字段的值为500,当我提交此字段时,它将把数据库中多个选择的ID从最早的更新为最新。

如果第一行的数量为100,它将为500-100,然后它将继续进行到第二行,其中输入字段的值现在为400,它将再次获得第二行的差额400 -200直到输入字段变为0。

这可能吗?谢谢。

1 个答案:

答案 0 :(得分:0)

运行foreach并在其中传递您的输入字段。简单

您可以按照以下代码进行了解..

public function updateRecord(Request $req)
    {
        //get data from oldest(ASC) to latest (desc).
        $var = $req->input_field;
        $data = ModelName::orderBy('id','asc')->get();

        foreach ($data as $key)
        {
            // ($var < 0) in case negative value
            if($var == 0 || $var < 0)
            {
                break;
            }       
            //find row with id
            $singleRow = ModelName::find($key->id);
            //holding data base quantity
            $dummyHolder = $single->quantity_requested;
            $single->quantity_requested = $dummyHolder + $var;
            $singleRow->save();

            //update variable
            $var = $var - $dummyHolder;
        }
    }