我有两个表之间的多对多关系。 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();
}
答案 0 :(得分:1)
您不需要将总产品数量存储在数据库中。您只需更新$withCount
模型中的App\Category
属性,如下所示:
protected $withCount = ['products'];
这会自动通过属性$category->products_count