gpt4 book ai didi

php - 删除商店标签之前的所有标签

转载 作者:行者123 更新时间:2023-11-30 21:27:58 28 4
gpt4 key购买 nike

我有这个代码

  private function hashtagName($string){
$name = $string;
$name = ltrim($name, '#');
$name = trim($name);
return $name;
}
private function hashtags($article){
$htag = '#';
$arr = explode(" ", $article->description);
$arrc = count($arr);
$i = 0;
$arr_id = [];
while($i < $arrc){
if(substr($arr[$i], 0, 1) === $htag ){
$hash = Hashtag::firstOrCreate(
['name' => $this->hashtagName($arr[$i]), 'slug' => str_slug(ltrim($arr[$i], '#'))]
);

if (! $article->hashtags->contains('hashtag_id', $this->hashtagName($arr[$i]))) {
$article->hashtags()->save($hash);
}
}
$i++;
}
}

此代码将标签正确存储到数据库中。如果我尝试在 WYSCIWYG 编辑器中使用一些主题标签,我会遇到问题。所见即所得编辑器经常添加它自己的 html 标签,此代码保存它。例如它存储在 DB helloworld

最佳答案

由于 Article 可以有很多 hashtagshashtag 可以属于很多 articles,所以它是 ManyToMany 关系....

您可以使用 sync 方法同步主题标签,任何不在新关联数组中的旧主题标签将被自动删除...

$article->hashtags()->sync($arrayOfHashtagsIds);

来自Docs

同步关联

您还可以使用 sync 方法来构造多对多关联。 sync 方法接受一组 ID 以放置在中间表上。任何不在给定数组中的 ID 都将从中间表中删除。因此,此操作完成后,中间表中将只存在给定数组中的 ID。

关于php - 删除商店标签之前的所有标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57926205/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com