在Laravel5.7中更新一行不起作用,如何修复它?

csbfibhn  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(381)

我正在尝试更新mysql表中的一行。但是,当我单击register按钮时,它什么也不做。我用的是拉威尔。
这是我的 update 功能:

public function update(Request $request)
{
    $idpawn = $request['idprestamo'];
    $paynumber = $request['numeropago'];
    $payqty = $request['payqty'];
    $statuspawns = statuspawns::find($idpawn,$paynumber);
    $updateqty = $statuspawns->totalpayment - $payqty;

    if($updateqty  == "0"){
        $status = "Pay";
    }
    else{
        $status = "Partial Payment";
    }

    $statuspawns->total = $updateqty;
    $statuspawns->status = $status;
    $statuspawns->save();

    return redirect()->back();
}

谢谢你的帮助。

tquggr8v

tquggr8v1#

我认为问题可能是你需要方括号而不是圆括号,因为它是一个数组。 $request['idprestamo'] $request['numeropago'] $request['payqty'] 我还想补充一点,你可以这样做,也可以用魔术的方法。。。 $request->numeropago

ia2d9nvy

ia2d9nvy2#

您没有正确检索记录。您必须只传递id才能找到()。因为你已经传递了两个参数。
将此语句更改为。。

$statuspawns = statuspawns::find($idpawn,$paynumber);

$statuspawns = statuspawns::find($idpawn);

现在可以更新要更新的列。

7hiiyaii

7hiiyaii3#

你必须进入 Request 这种方式 $request->input_name 不是这样的 $request('input_name') 因为这是一个拉威尔的数据收集
最后,您的函数将如下所示:

public function update(Request $request)
    {
        $idpawn = $request->idprestamo;
        $paynumber = $request->numeropago;
        $payqty = $request->payqty;
        $statuspawns = statuspawns::find($idpawn,$paynumber);
        $updateqty = $statuspawns->totalpayment - $payqty;

        if($updateqty  == "0"){
            $status = "Pay";
        }
        else{
            $status = "Partial Payment";
        }

        $statuspawns->total = $updateqty;
        $statuspawns->status = $status;
        $statuspawns->save();

        return redirect()->back();
    }

更新

在Laravel5.7中,您必须使用 update() 方法而不是 save() 方法来更新行。

相关问题