删除或获取 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');
}
我创建了一条新记录(在tags
table)
$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();
有效。
现在,在taggables
table,我没有tags
table'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";
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
table)
$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();
有效。
现在,在taggables
table,我没有tags
table'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";