基本上我有三个表,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();
慕勒3428872
TA贡献1848条经验 获得超6个赞
你不需要为它使用 foreach 。
SmsContentCategories::where('sms_content_id', $id)->delete();
SmsContentCity::where('sms_content_id', $id)->delete();
SmsContent::find($id)->delete();
交互式爱情
TA贡献1712条经验 获得超3个赞
仅删除父模型。
SmsContent::find($id)->delete();
对于子表sms_content_cities
和SmsContentCategories
,添加一个ON DELETE CASCADE
条件,该条件将在删除父行时自动从这些子表中删除行。您可以创建 2 个新的迁移 文件并在每个文件中添加此约束并执行php artisan migrate。
$table->foreign('sms_content_id')->references('id')->on('sms_content')->onDelete('cascade');
- 3 回答
- 0 关注
- 108 浏览
添加回答
举报
0/150
提交
取消