php - Laravel 如何仅在新插入时递增?

标签 php mysql laravel

每次添加新产品时,我都需要增加类别表中的“total_products”字段。但我不希望它在更新现有产品时增加。我现在正在做这个:

Category::findOrNew($product->cat_id)->increment('total_products',1);

但是此代码无法识别它是更新还是新插入。无论是插入还是更新,它都会增加“total_products”。如何使其仅在新插入时递增?

最佳答案

这显然是两个查询,请尝试每个单独的查询

$cat = Category::find($product->cat_id);
if($cat){
    $cat->increment('total_products',1);
}else{
    $cat = new Category();
    $cat->total_products = 1;
    // Inert new category here with all related data
    $cat->save(); 
}
return $cat->id;

还要确定何时增加total_products插入后更新后

关于php - Laravel 如何仅在新插入时递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48704952/

相关文章:

php - 设置 laravel .env 的位置

php - Laravel : failing to add foreign key 中的 SQLSTATE[HY000] 错误

laravel - 等待本地主机...永远不会结束

php - 上传前客户端 zip 文件提取选项

php - 可以用MySQL数据库代替变量吗?

mysql - 是否可以将数据从 csv 合并到 mysql?

MySQL 查询在 JOIN 中查找没有匹配记录的项目非常慢

php - Codeigniter 在 View 中使用 foreach

php - 我们可以使用 Linux 命令行或 PHP 脚本将 "mac"字体转换为 "pc"字体吗?

mysql - 递归MySQL触发器,调用同一个表和同一个触发器