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没有提供任何通过使用子表数据来删除父表行的功能,它提供了。加入是一个很好的方式