Laravel的WHERE AND CLAUSE不能正常工作.

问题描述 投票:0回答:1

我想更新 t_bapr 有条件 t_prbkt_item 但它不能正常工作。

数据是这样的。

{
    "type": "success",
    "message": "Data updated successfully.",
    "data": [
        {
            "t_prbk": "SB1900003",
            "t_item": "         FCLADM31482BZ1700000",
            "t_bapr": "60.0"
        },
        {
            "t_prbk": "SB1900003",
            "t_item": "         FCLAHM43312K64N10100",
            "t_bapr": "60.0"
        },
        {
            "t_prbk": "SB1900003",
            "t_item": "         FCLAHM43312K64N10100",
            "t_bapr": "60.0"
        },
        {
            "t_prbk": "SB1900003",
            "t_item": "         FCLAHM-4331A-K2W -N002-IN",
            "t_bapr": "60.0"
        }
    ]
}

然后这是控制器。

public function priceBookUpdate(Request $request, $t_prbk, $t_item)
    {
        $request->validate([
            't_bapr' => 'integer'
        ]);

        $price_book = PriceBookTtdpcg031::where('t_prbk', $t_prbk)
                    ->where('t_item', $t_item)
                    ->firstOrFail();

        $price_book->t_bapr = $request->t_bapr;
        $price_book->save();

        $data = PriceBookTtdpcg031::select('t_prbk', 't_item', 't_bapr')
                ->where('t_prbk', 'SB1900003')
                ->get();

        return response()->json([
            'type' => 'success',
            'message' => trans('message.update_success'),
            'data' => $data
        ], 201);
    }
Route::post('/sales-price-update-pb/{t_prbk}/{t_item}', 'SalesPriceController@priceBookUpdate');

当我点击更新时,我希望 t_bapr 栏的值要根据 t_prbkt_item 我指定的参数。但使用的参数只是 t_prbk.

我使用laravel 6.0和SQL Server。

php sql-server laravel backend where-clause
1个回答
4
投票

请按以下方式尝试。

$price_book = PriceBookTtdpcg031::where('t_prbk', $t_prbk)
                    ->whereRaw('TRIM(t_item) = ?', [trim($t_item)])
                    ->firstOrFail();
© www.soinside.com 2019 - 2024. All rights reserved.