Laravel 具有多个表的属于多

问题描述

我有一个名为 creative 的表和另外两个名为 title_set 和 image_set 的表。 它们通过 creative_set 表相互关联。

所以基本上,我有

creative:
    id
    title

title_set:
    id
    title
    
image_set:
    id
    image

和关系表:

creative_set:
    creative_id
    set_id

现在,我创建模型和关系:

创意模型:

public function imagesets()
{
    return $this->belongsToMany('App\Models\imageset','creative_set','creative_id','set_id');
}


public function titleSets()
{
    return $this->belongsToMany('App\Models\TitleSet','set_id');
}

public function creativeSets()
{
    return $this->hasMany('App\Models\CreativeSet','creative_id');
}

我创建了一个删除关系的函数

public function deleteRelations()
{
    $this->titleSets()->delete();
    $this->imagesets()->delete();
    $this->creativeSets()->delete();
}

现在我创建了两个具有一个关系模型(标题集 01)的广告素材 A(标题创意 01)和具有一个关系模型(图像集 01)的 B(图片创意 01)。

当我更新广告素材 A 时,我将调用 deleteRelations 函数并重新创建新项目。

问题是,它不仅删除了广告素材 A 的标题集,还删除了广告素材 B 的图片集。为什么我们有 $this->imagesets() 的结果?

这里有什么错误吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)