为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel根据相同的ID删除关系表中的记录

Laravel根据相同的ID删除关系表中的记录

PHP
芜湖不芜 2022-10-28 15:41:23
基本上我有三个表,sms_content、sms_content_cities 和 sms_content_categories。我想从 sms_content 表中删除记录,通过从 sms_content 表中删除记录,应该从 sms_content_cities 和 sms_content_categories 表中删除记录。这是我的代码:$smsContentCategory = SmsContentCategories::where('sms_content_id', $id)->first();        $smsContentCategory->delete();        $smsContentCities = SmsContentCity::where('sms_content_id', $id)->first();        foreach ($smsContentCities as $city){            if(!empty($city)){                $city->delete();            }        }        $model = SmsContent::find($id);        $model->delete();我正在使用单一类别和多个城市。如何删除相关记录。
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

SmsContentCategories::where('sms_content_id', $id)->delete();


SmsContentCity::where('sms_content_id', $id)->delete();


SmsContent::where('id', $id)->delete();


查看完整回答
反对 回复 2022-10-28
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

你不需要为它使用 foreach 。


SmsContentCategories::where('sms_content_id', $id)->delete();

SmsContentCity::where('sms_content_id', $id)->delete();

SmsContent::find($id)->delete();


查看完整回答
反对 回复 2022-10-28
?
交互式爱情

TA贡献1712条经验 获得超3个赞

仅删除父模型。

SmsContent::find($id)->delete();

对于子表sms_content_citiesSmsContentCategories,添加一个ON DELETE CASCADE条件,该条件将在删除父行时自动从这些子表中删除行。您可以创建 2 个新的迁移 文件并在每个文件中添加此约束并执行php artisan migrate

$table->foreign('sms_content_id')->references('id')->on('sms_content')->onDelete('cascade');

关于删除级联的 Laravel 文档


查看完整回答
反对 回复 2022-10-28
  • 3 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信