Laravel 模型关联——连带删除
程序员文章站
2022-06-22 21:36:06
问题来源 在项目中,我们经常需要在删除一个表中数据的时候,和它相关联的表也要有相应的操作(删除或修改), 提供了非常便捷的操作方法 解决方法 现在假设我们在做一个博客系统,那么就会有文章表、用户表,并且这两个表是相关联的,如果我们需要在删除用户的时候,同时删除文章中的对应数据,那么在 中: 这样,我 ......
问题来源
在项目中,我们经常需要在删除一个表中数据的时候,和它相关联的表也要有相应的操作(删除或修改),laravel
提供了非常便捷的操作方法
解决方法
现在假设我们在做一个博客系统,那么就会有文章表、用户表,并且这两个表是相关联的,如果我们需要在删除用户的时候,同时删除文章中的对应数据,那么在 laravel
中:
// user model class user extends eloquent { // 与用户表关联的文章表 public function posts() { return $this->hasmany('post'); } protected static function boot() { parent::boot(); // 在删除用户时执行 static::deleting(function($user) { // 删除与用户关联的文章 $user->posts()->delete(); }); } }
这样,我们在删除用户的时候,与之对应的文章也会被删除,方便操作了许多。
当然,我认为这个也可以扩展,我们可以在模型中关联自身对应的数据表,即在做菜单管理的时候,删除父级,会对应将它的子分类删除,而不需要像我之前那篇文章【php在无限分类时注意的一些问题(不保证代码完全正确哦)】一样,那么麻烦。
上一篇: 高精度加法实现(c++)