Php 从数据库中删除与具有laravel的其他表关联的行
我的数据库中有4个表Php 从数据库中删除与具有laravel的其他表关联的行,php,laravel,associations,Php,Laravel,Associations,我的数据库中有4个表 mail_tasks => MailTask (class) mail_messages => MailMessage (class) meos => Meo (class) mail_recipients => MailRecipient (class) 我需要删除该列表中包含“deleted_at”的非空值的前3个表中的所有行,换句话说,使用forceDelete删除行(该行以前使用softdelete删除) 问题是,我需要首先删除每个表与不同
mail_tasks => MailTask (class)
mail_messages => MailMessage (class)
meos => Meo (class)
mail_recipients => MailRecipient (class)
我需要删除该列表中包含“deleted_at”的非空值的前3个表中的所有行,换句话说,使用forceDelete删除行(该行以前使用softdelete删除)
问题是,我需要首先删除每个表与不同表之间的关联
MailTask is associated with Meos table
Meos is associated with MailRecipient
邮件任务迁移和关联
$table->foreign('meo_id')->references('id')->on('meos')->onDelete('cascade');
$table->foreign('meo_id')->references('id')->on('meos')->onDelete('cascade');
邮件收件人迁移和关联
$table->foreign('meo_id')->references('id')->on('meos')->onDelete('cascade');
$table->foreign('meo_id')->references('id')->on('meos')->onDelete('cascade');
MEO迁移和关联
$table->foreign('location_id')->references('id')->on('locations')->onDelete('cascade');
$table->foreign('business_type_id')->references('id')->on('business_types')->onDelete('cascade');
public function handle()
{
$mailMessage = MailMessage::query()->whereNotNull('deleted_at');
$mailMessage->forceDelete();
$mailTask = MailTask::query()->whereNotNull('deleted_at');
$mailTask->forceDelete();
$meo = Meo::query()->whereNotNull('deleted_at');
$meo->forceDelete();
}
$table->foreign('location_id')->references('id')->on('locations')->onDelete('cascade');
$table->foreign('business_type_id')->references('id')->on('business_types')->onDelete('cascade');
public function handle()
{
$mailMessage = MailMessage::query()->whereNotNull('deleted_at');
$mailMessage->forceDelete();
$mailTask = MailTask::query()->whereNotNull('deleted_at');
$mailTask->forceDelete();
$meo = Meo::query()->whereNotNull('deleted_at');
$meo->forceDelete();
}
我这样做没关系吧?还是我需要做更多的事情