php - 基于标识符的行计数 - Laravel

标签 php mysql laravel

两个表之间存在多对多关系。 类别和产品表,数据透视表是category_product

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

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

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

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

产品 Controller

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

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

                 $count_product = Product::count();               

             }

最佳答案

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

protected $withCount = ['products'];

这将通过属性$category->products_count自动为您提供某个类别的产品总数

关于php - 基于标识符的行计数 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46791224/

相关文章:

javascript - 无法使 MailChimp api v2 工作

mysql - 在 mysql 中执行按位异或 + bit_count 时遇到问题

Laravel 迁移错误 : Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes laravel 5. 3

php - 如何使用codeigniter将已删除的记录存储在mysql数据库中

php - laravel 中 https 的问题

php - laravel 5.1 本地化不工作

php - 为什么我不能在 PHP 的 DateTime 类中访问 DateTime->date?

php - 安装 SonataMediaBundle 后映射异常

php - yii-CGridView的列使用类显示php警告

python - 如何在 MySQL 上使用 Django 模拟 "lock timeout"错误