Browse Source

Fix for firstOrCreate failing hashtags with case differences on name

Daniel Mason 3 years ago
parent
commit
9cc18eb82a
1 changed files with 7 additions and 3 deletions
  1. 7 3
      app/Jobs/StatusPipeline/StatusEntityLexer.php

+ 7 - 3
app/Jobs/StatusPipeline/StatusEntityLexer.php

@@ -107,9 +107,13 @@ class StatusEntityLexer implements ShouldQueue
 			}
 			DB::transaction(function () use ($status, $tag) {
 				$slug = str_slug($tag, '-', false);
-				$hashtag = Hashtag::firstOrCreate(
-					['name' => $tag, 'slug' => $slug]
-				);
+				$hashtag = Hashtag::where('slug', $slug)->first();
+				if (!$hashtag) {
+					$hashtag = Hashtag::create(
+						['name' => $tag, 'slug' => $slug]
+					);
+				}
+
 				StatusHashtag::firstOrCreate(
 					[
 						'status_id' => $status->id,