当我删除 post(campaign) 时,与已删除活动相关的付款仍在数据库中,我也想将其删除。 (laravel,控制器)
when i delete post(campaign) , payments that related to the deleted campaign still in the DB , i want to delete it also. (laravel,controller)
需要一些帮助
当我从我的众筹平台删除一个活动时,如果这个活动已经有一些付款,我会收到一个错误,
没有活动的付款仍在数据库中
所以我的付款列表视图中出现错误。我唯一的解决方案是转到数据库并删除属于已删除活动的付款。
when i delete campaign , it must also delete his own payments
- campaign Controller(删除功能):
public function deleteCampaigns($id = 0){
if(config('app.is_demo')){
return redirect()->back()->with('error', __('app.feature_disable_demo'));
}
if ($id){
$campaign = Campaign::find($id);
if ($campaign){
$campaign->delete();
}
}
return back()->with('success', trans('app.campaign_deleted'));
}
every payments in database is related to a campaign_id from campaign table
如果您在 Campaign 模型上正确设置了 toMany 关系,那么您只需对该关系调用 delete()
,如果没有额外的约束,它应该会删除所有相关付款。
所以假设 toMany 与付款的关系被称为 payments
那么:
if ($campaign){
$campaign->payments()->delete();
$campaign->delete();
}
编辑:
根据 Alex Mac 在评论中提到的内容,这可能是也可能不是您问题的最佳解决方案,尽管我认为这是最直接的答案。阅读关于此 Question
的答案
您可以在迁移中创建外键约束。例如,
$table->foreign('campaign_id') ->references('id')->on('payments') ->onDelete('cascade');
因此,当您删除活动时,它会删除其付款外键约束模型或更简单地说其 eloquent hasMany 关系。
需要一些帮助
当我从我的众筹平台删除一个活动时,如果这个活动已经有一些付款,我会收到一个错误,
没有活动的付款仍在数据库中 所以我的付款列表视图中出现错误。我唯一的解决方案是转到数据库并删除属于已删除活动的付款。
when i delete campaign , it must also delete his own payments
- campaign Controller(删除功能):
public function deleteCampaigns($id = 0){
if(config('app.is_demo')){
return redirect()->back()->with('error', __('app.feature_disable_demo'));
}
if ($id){
$campaign = Campaign::find($id);
if ($campaign){
$campaign->delete();
}
}
return back()->with('success', trans('app.campaign_deleted'));
}
every payments in database is related to a campaign_id from campaign table
如果您在 Campaign 模型上正确设置了 toMany 关系,那么您只需对该关系调用 delete()
,如果没有额外的约束,它应该会删除所有相关付款。
所以假设 toMany 与付款的关系被称为 payments
那么:
if ($campaign){
$campaign->payments()->delete();
$campaign->delete();
}
编辑:
根据 Alex Mac 在评论中提到的内容,这可能是也可能不是您问题的最佳解决方案,尽管我认为这是最直接的答案。阅读关于此 Question
的答案您可以在迁移中创建外键约束。例如,
$table->foreign('campaign_id') ->references('id')->on('payments') ->onDelete('cascade');
因此,当您删除活动时,它会删除其付款外键约束模型或更简单地说其 eloquent hasMany 关系。