在 Laravel 中删除组后,从库存 table 中删除 product_id
Delete product_id from inventories table after deleting a group in Laravel
我想在删除特定组后删除库存table中的product_id
。
Table结构:
product_groups
id | grp_name
products
id | prod_name | price | group_id
inventories
id | product_id | in_stock
代码:
public function ProductGroups_destroy($id)
{
$product_group = ProductGroup::find($id);
$product_group->delete();
$product_group->product()->delete();
$product_group->product->inventory()->delete();
Session::flash('success', 'Product group deleted');
return redirect()->back();
}
型号
Product Model, ProductGroup Model
Inventory Model
1) 您可以在库存迁移中使用它:
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
来源:https://laravel.com/docs/5.5/migrations#foreign-key-constraints
2) 可以覆盖删除方法:
class Product extends Model {
protected $table = 'products';
public function inventory(){
return $this->hasMany('App\Inventory', 'product_id');
}
public function delete()
{
DB::transaction(function()
{
$this->inventory()->delete();
parent::delete();
});
}
}
我想在删除特定组后删除库存table中的product_id
。
Table结构:
product_groups
id | grp_nameproducts
id | prod_name | price | group_idinventories
id | product_id | in_stock
代码:
public function ProductGroups_destroy($id)
{
$product_group = ProductGroup::find($id);
$product_group->delete();
$product_group->product()->delete();
$product_group->product->inventory()->delete();
Session::flash('success', 'Product group deleted');
return redirect()->back();
}
型号
Product Model, ProductGroup Model
Inventory Model
1) 您可以在库存迁移中使用它:
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
来源:https://laravel.com/docs/5.5/migrations#foreign-key-constraints
2) 可以覆盖删除方法:
class Product extends Model {
protected $table = 'products';
public function inventory(){
return $this->hasMany('App\Inventory', 'product_id');
}
public function delete()
{
DB::transaction(function()
{
$this->inventory()->delete();
parent::delete();
});
}
}