laravel — Объект класса Illuminate \ Support \ Collection не может быть преобразован в начинающего int php

пожалуйста, дайте мне несколько советов о том, как мой код будет работать правильно. У меня есть цикл, который дает мне идентификатор и количество для обновления каждого цикла в моей базе данных.

но я получил ошибку, когда я передаю его в свою личную функцию и пытаюсь выполнить его.
Я только начинающий в PHP / Laravel.
Вот мой полный код:

public function updateProduct(Request $request) {
$ids = array();
foreach ($request->products as $ship_id) {
$product_id = DB::table('shipping_products')->select('product_id','quantity')
->where(['shipping_products.shipping_id'=>$ship_id])
->get();
array_push($ids,$product_id);
}

foreach ($ids as $value) {
foreach ($value as $update) {
$this->updateProductQty($update->product_id,$update->quantity);
}
}
}

private function updateProductQty($product_id, $quantity_order) {
$qty = DB::table('products')->select('quantity')
->where(['products.product_id'=>$product_id])
->get();
$updateTotalQty = $qty - $quantity_order;
DB::table('products')
->where('product_id', $product_id)
->update(array(
'quantity' => $updateTotalQty
));

}

я получил ошибку в этих строках:

$this->updateProductQty($update->product_id,$update->quantity);

там написано сообщение об ошибке:

Object of class Illuminate\Support\Collection could not be converted to int

0

Решение

Попробуйте сделать это, чтобы проверить, являются ли данные тем, что вы ищете:

foreach ($ids as $value) {
foreach ($value as $update) {
//$this->updateProductQty($update->product_id,$update->quantity);
var_dump($update);
var_dump($update->product_id);
var_dump($update->quantity);
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]