Php 从laravel中的子表中删除所有相关子行时删除父表数据
这是我的父表:-Php 从laravel中的子表中删除所有相关子行时删除父表数据,php,laravel-5.5,Php,Laravel 5.5,这是我的父表:- id | name | created_at 1 | mobile | NULL 2 | Laptop | Null 这是子表:- id | name |parent_id| amount | created_at 1 | Nokia | 1 | 2500 | NULL 2 |Samsung| 1 | 3500 | Null 3 |Sony | 1 | 4000 | Null 当我使用外键删除
id | name | created_at
1 | mobile | NULL
2 | Laptop | Null
这是子表:-
id | name |parent_id| amount | created_at
1 | Nokia | 1 | 2500 | NULL
2 |Samsung| 1 | 3500 | Null
3 |Sony | 1 | 4000 | Null
当我使用外键删除与父移动数据相关的所有子数据时,我还想删除父表中的移动数据。在删除语句后添加此代码
$child = DB::table('child')->where('parent_id',$id)->get();
if($child->count() == 0){
$parent = DB::table('parent')->where('id', $id)->delete();;
}
确保您正在为此使用查询生成器
如果您使用的是雄辩,而不是DB,则添加
use DB;
上课前
希望这能解决你的问题 您使用的是laravel查询吗builder@Krishanu是的..然后我建议您做一些事情,比如用parent_id计算子表中的行数,例如,1。如果为0,则从父表中删除该行。如果你给我几分钟的时间,我可以试一下代码myself@Krishanubrother,但我认为MySQL没有提供任何通过使用子表数据来删除父表行的功能,它提供了。加入是一个很好的方式