Как мне обновить новые значения коллекции? - PullRequest
0 голосов
/ 19 июня 2020

Мне нужен способ обновить коллекцию, которую я получаю из формы html.

У меня есть массив

Product ids: 
array:3 [
  0 => "1"
  1 => "2"
  2 => "3"
]

Product quantity: 
array:3 [
  0 => "15"
  1 => "5"
  2 => "7"
]

Product Price:

array:3 [
  0 => "12.00"
  1 => "2.50"
  2 => "4.00"
]

Я храню / сохраняю значения в базу данных примерно так:

$product_ids = $request->get('product_ids');
$product_prices = $request->get('product_prices');
$product_quantities = $request->get('product_quantities');
$product_descriptions = $request->get('product_descriptions');

for ($i = 0; $i < sizeof($product_ids); $i++) {

    $item = new Order_item;

    $item->order_id = $order->id;
    $item->product_id = $product_ids[$i];
    $item->unit_price = $product_prices[$i];
    $item->description = $product_descriptions[$i];

    $item->quantity = $product_quantities[$i];

    $item->save();
}

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Я исправил проблему примерно так:

        $product_ids = $request->get('product_ids');
        $product_prices = $request->get('product_prices');
        $product_quantities = $request->get('product_quantities');
        $product_descriptions = $request->get('product_descriptions');

Получил значения, используя $request->get.

И обновил значения, используя a для l oop.

        for ($i = 0; $i < sizeof($product_ids); $i++) {
            Order_item::where('order_id', $id)
                ->where('product_id', $i + 1)->update(
                    [   'quantity' => $product_quantities[$i],
                        'unit_price' =>  $product_prices[$i],
                        'description' => $product_descriptions[$i],
                    ]);
0 голосов
/ 19 июня 2020

Вы можете найти запись на основе идентификатора, а затем сохранить измененные данные:

$flight = App\Flight::find(1);

$flight->name = 'New Flight Name';

$flight->save();

From https://laravel.com/docs/7.x/eloquent#updates

Если вы используете order_id как ключ, затем используйте оператор where () с first ():

$order = App\Order_item::where('order_id', 1)->first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...