Laravel-如何在 parent 改变时更新所有 child ?

标签 laravel eloquent

[我正在寻找最佳实践来处理]

我的数据结构如下:

Category Class

protected $fillable = [
   'id', 'price', 'name'

];

public function products()
{
   return $this->hasMany(Product::class, 'category_id');
}

Product Class 

protected $fillable = [
   'category_id', 'price' 
];

public function category
{
  return $this->belongsTo(Category::class, 'category_id');
}

假设我更新了类别的价格。因此,我想更新与此类别表相关的产品中的所有价格,它也会更新与类别相同的价格。

最佳答案

你有两个选择,要么使用

$table->foreignId('category_id')
      ->constrained()
      ->onUpdate('cascade');

或者如果你不能改变你的数据库结构使用model observer更新它

关于Laravel-如何在 parent 改变时更新所有 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64117352/

相关文章:

php - 如何在 Laravel 中跨 Controller 重用代码

php - 在 laravel 中对齐 Bootstrap 网格

php - Laravel fromTable 不适用于模型 updateOrCreate 函数

php - Laravel 5.1 删除关系

php - 如何在 Laravel 查询中使用多个 OR、AND 条件

php - 页面 Controller 还是实体 Controller ?

php - Laravel Eloquent 对 mysql 表进行 AND 操作的方法

laravel - 基于外表属性的eloquent过滤结果

php - Laravel substarction 查询不起作用

php - 仅当一个字段作为数组提供时,Laravel Eloquent 才插入多条记录