我有这个代码
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++;
}
}
此代码将标签正确存储到db中。如果我尝试在WYSCIWYG编辑器中使用一些标签,则会遇到问题。所见即所得(WYSCIWYG)编辑器经常添加它自己的html标记,并且此代码将其保存。例如,它存储在数据库helloworld中
答案 0 :(得分:0)
由于aws s3 cp
可以有许多cp
,而Article
可以属于许多hashtags
,所以这是hashtag
的关系。...
您可以使用articles
方法同步主题标签,所有不在新关联数组中的旧主题标签都将被自动删除...
ManyToMany
从Docs
您还可以使用sync方法构造多对多关联。 sync方法接受一组ID放置在中间表上。给定数组中没有的任何ID将从中间表中删除。因此,完成此操作后,中间表中将仅存在给定数组中的ID。