Update StatusTagsPipeline.php

shleeable-patch-17
Shlee 3 days ago committed by GitHub
parent c8bed78bee
commit f858db840e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -94,32 +94,17 @@ class StatusTagsPipeline implements ShouldQueue
if (config('database.default') === 'pgsql') {
$hashtag = DB::transaction(function () use ($name) {
$baseSlug = str_slug($name, '-', false);
$slug = $baseSlug;
$counter = 1;
$slug = str_slug($name, '-', false);
$existing = Hashtag::where('name', $name)
// Use slug for lookup (case-insensitive via str_slug normalization)
$existing = Hashtag::where('slug', $slug)
->lockForUpdate()
->first();
if ($existing) {
if ($existing->slug !== $slug) {
while (Hashtag::where('slug', $slug)
->where('name', '!=', $name)
->exists()) {
$slug = $baseSlug.'-'.$counter++;
}
$existing->slug = $slug;
$existing->save();
}
return $existing;
}
while (Hashtag::where('slug', $slug)->exists()) {
$slug = $baseSlug.'-'.$counter++;
}
return Hashtag::create([
'name' => $name,
'slug' => $slug,

Loading…
Cancel
Save