根据Identifier - Laravel计算行数

时间:2017-10-17 13:20:51

标签: php mysql laravel

我有两个表之间的多对多关系。 categories and products tables和数据透视表是category_product

在我的类别表中,我有一个属性no_of_products,用于保持该类别下的产品数量,并且它可以为空(因为我在添加该类别下的产品之前创建了该类别)。

如何在类别下保存产品后更新no_of_products。这是我尝试过但我感到困惑。

我是否必须从已插入关系的数据透视表中计算?

我是数据库和laravel的初学者。

的ProductsController

 public function store(Request $request)
    {
        $product = new Product(array(
               'name'  => $request->get('name'),
            ));

                 $product->save();
                 $product->saveProduct($request->get('category'));  

                 $count_product = Product::count();               

             }

1 个答案:

答案 0 :(得分:1)

您不需要将总产品数量存储在数据库中。您只需更新$withCount模型中的App\Category属性,如下所示:

protected $withCount = ['products'];

这会自动通过属性$category->products_count

为您提供类别的产品总数