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

时间:2018-10-31 20:37:37

标签: laravel laravel-5 eloquent laravel-query-builder

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');
}

我在tags表中创建一条新记录

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

现在我将相关数据保存在taggables表中:

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

有效。

现在我要删除标签中$ cat的所有记录:

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

有效。

现在,在taggables表中,我没有tags表中'key1'的任何相关数据。所以我想删除它。

问题:

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

1 个答案:

答案 0 :(得分:4)

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

NULL