【问题标题】:Delete or Get all the data with specific name tag in laravel在 laravel 中删除或获取具有特定名称标签的所有数据
【发布时间】:2019-04-05 02:31:57
【问题描述】:
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);

有效。

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

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

有效。

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

问题:

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

【问题讨论】:

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


    【解决方案1】:

    这是从 2 表中删除具有相关 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";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 2021-07-10
      • 2022-01-13
      • 2013-05-02
      • 2019-04-14
      • 1970-01-01
      • 2018-03-20
      相关资源
      最近更新 更多