Laravel Свойство исключения [product_quantity] не существует в экземпляре Eloquent Builder - PullRequest
0 голосов
/ 20 апреля 2020

Я пытался создать сайт электронной коммерции в Laravel и получил сообщение об ошибке, в котором говорится, что «свойство исключения [product_quantity] не существует в экземпляре Eloquent Builder». когда я пытался обновить количество товара в базе данных.

По сути, я хотел сделать следующее: если пользователь пытается добавить товар, который уже есть в его корзине, количество увеличивается на 1 и общая цена продукта изменяется соответственно. Чтобы добиться этого, я сначала проверил БД на наличие записи с

$findProduct = StoreCart::where('product_id', $product->id); 

"StoreCart" - это название моей модели для хранения данных корзины. Затем, после того, как я выполнил запрос на поиск, был

if($findProduct) {
            // product is already in DB, set new quantity
            $newQuantity = $findProduct->product_quantity + $getQuantity;
            $newProductTotal = $findProduct->product_price * $newQuantity;
            // update the exsisting product
            $findProduct->update([
               'product_quantity' => $newQuantity,
               'product_total' => $newProductTotal,
            ]);

         } else {
            // create new field and store it in db
            StoreCart::create([
                'user_id' => Auth::id(),
                'product_id' => $product->id,
                'product_name' => $product->name,
                'product_price' => $amount,
                'product_quantity' => $getQuantity,
                'product_total' => $productTotal,
            ]);
        }

, и когда я попытался выполнить это, появляется вышеупомянутая ошибка, говорящая, что [product_quantity] не существует в экземпляре Eloquent Builder. В чем проблема с этим?

1 Ответ

0 голосов
/ 20 апреля 2020

Вы измените $findProduct = StoreCart::where('product_id', $product->id); на $findProduct = StoreCart::where('product_id', $product->id)->first();. Это будет работать нормально. По вашему запросу на выходе будет набор объектов. Вы не можете использовать команду обновления для коллекции. Вы можете использовать обновление комментария к объекту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...