Обновление нескольких строк с циклом, не работающим в Laravel - PullRequest
0 голосов
/ 01 июня 2019

Привет, у меня простая проблема в моем проекте. Я хочу обновить данные в БД. Коды sku, отправленные с ajax. Как это А-1, А-2, А-3

Я пытался:

$sku2 = $request['sku'];
$sku = explode(',', $sku2);
foreach ($sku as $key => $value){
     $content = ProductNew::where('sku', $value)->update(['price' => 
     $price]);
}

Но обновлена ​​только первая запись (A-1) Где проблема?

Это полная функция

    public function setdiscount(Request $request)
    {
    $discount = Discount::where('id', $request['id'])->first();
    $d_price = $discount['price'];
    $d_type = $discount['type'];
    $price = 17;
    $sku2 = $request['sku'];
    $sku = explode(',', $sku2);
    foreach ($sku as $key => $value){
        ProductNew::whereIn('sku', $sku)->update(['price' => $price]);
    }



    } 

1 Ответ

3 голосов
/ 01 июня 2019

Вы можете попробовать использовать where () вместе с update () для обновления нескольких записей:

$sku2 = $request['sku'];
$sku = explode(',', $sku2);

$sku = array_map('trim', $sku);

ProductNew::whereIn('sku', $sku)->update(['price' => $price]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...