fix create slug

This commit is contained in:
2024-10-01 12:20:01 +03:00
parent 7ff9d45fe7
commit 571782368c
2 changed files with 16 additions and 18 deletions

View File

@ -15,7 +15,7 @@ class PostService
$model->content = $form_model->getItem('content');
$model->user_id = $form_model->getItem('user_id');
$model->title = $form_model->getItem('title');
$model->slug = $this->createSlug($form_model);
$model->slug = Slug::recursiveCreateSlug(Post::class, $this->createSlug($form_model));
if ($model->save()){
return $model;
}
@ -25,22 +25,7 @@ class PostService
public function createSlug(FormModel $form_model): string
{
$slug = Slug::url_slug($form_model->getItem('title'), ['transliterate' => true, 'lowercase' => true]);
if (Post::where(['slug' => $slug])->exists()) {
$id = 1;
$tmpSlug = $slug . '-' . $id++;
$slug = $this->recursiveCreateSlug($slug, $tmpSlug, $id);
}
return $slug;
}
protected function recursiveCreateSlug($slug, $tmpSlug, $id): string
{
if (Post::where(['slug' => $tmpSlug])->exists()) {
$tmpSlug = $slug . '-' . $id++;
$tmpSlug = $this->recursiveCreateSlug($slug, $tmpSlug, $id);
}
return $tmpSlug;
return Slug::url_slug($form_model->getItem('title'), ['transliterate' => true, 'lowercase' => true]);
}
public function update(FormModel $form_model, Post $post): false|Post