删除或获取 laravel 中具有特定名称标签的所有数据

Delete or Get all the data with specific name tag in laravel

Table 1: products: id, title, publish,created_at
Table 2: tags: id,name,lang,created_at
Table 3: taggable: id,tag_id,taggable_type,taggable_id

产品型号中:

public function tags()
{
    return $this->morphToMany('App\Tag', 'taggable');
}

我创建了一条新记录(在tagstable)

$cat = Category::find(1);
$tag = \App\Tag::firstOrCreate(['name' => 'key1']);

现在我把相关数据保存在taggables table:

$cat = Category::find(1);
$cat->tags()->save($tag);

有效。

现在我想删除 taggables 中 $cat 的所有记录:

$cat->tags()->detach();

有效。

现在,在taggablestable,我没有tagstable'key1'的任何相关数据。所以我想删除它。

问题:

如何检查 tags 中的记录 (name = 'key1') 在 taggable 中没有任何相关记录,如何删除它?

这是从 2 Table 中删除具有相关 ID 的数据的 sql 查询:

delete taggable,tags from taggable left join tags on taggable.tag_id= tags.id where tags.id = "which id you want to delete";