Create slug
This commit is contained in:
		| @@ -2,6 +2,7 @@ | ||||
|  | ||||
| namespace kernel\helpers; | ||||
|  | ||||
| use Illuminate\Database\Eloquent\Model; | ||||
| use kernel\FormModel; | ||||
| use kernel\modules\post\models\Post; | ||||
|  | ||||
| @@ -126,7 +127,17 @@ class Slug | ||||
|         return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str; | ||||
|     } | ||||
|  | ||||
|     public static function recursiveCreateSlug($model, $slug, $tmpSlug = '', $id = 1): string | ||||
|     public static function createSlug(string $title, $model = null): string | ||||
|     { | ||||
|         $slug = Slug::url_slug($title, ['transliterate' => true, 'lowercase' => true]); | ||||
|         if ($model === null) { | ||||
|             return $slug; | ||||
|         } | ||||
|  | ||||
|         return Slug::recursiveCreateSlug($model, $slug); | ||||
|     } | ||||
|  | ||||
|     protected static function recursiveCreateSlug($model, string $slug, string $tmpSlug = '', int $id = 1): string | ||||
|     { | ||||
|         if ($tmpSlug === '') $tmpSlug = $slug; | ||||
|         if ($model::where(['slug' => $tmpSlug])->exists()) { | ||||
|   | ||||
| @@ -9,7 +9,6 @@ use kernel\modules\user\models\User; | ||||
|  * @property string $content | ||||
|  * @property string $title | ||||
|  * @property string $slug | ||||
| // * @property string $username | ||||
|  * @property int $user_id | ||||
|  * @method static where(int[] $array) | ||||
|  * @method static find($id) | ||||
|   | ||||
| @@ -15,7 +15,8 @@ class PostService | ||||
|         $model->content = $form_model->getItem('content'); | ||||
|         $model->user_id = $form_model->getItem('user_id'); | ||||
|         $model->title = $form_model->getItem('title'); | ||||
|         $model->slug = Slug::recursiveCreateSlug(Post::class, $this->createSlug($form_model)); | ||||
| //        $model->slug = Slug::recursiveCreateSlug(Post::class, $this->createSlug($form_model)); | ||||
|         $model->slug = Slug::createSlug($form_model->getItem('title'), Post::class); | ||||
|         if ($model->save()){ | ||||
|             return $model; | ||||
|         } | ||||
| @@ -23,11 +24,6 @@ class PostService | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function createSlug(FormModel $form_model): string | ||||
|     { | ||||
|         return Slug::url_slug($form_model->getItem('title'), ['transliterate' => true, 'lowercase' => true]); | ||||
|     } | ||||
|  | ||||
|     public function update(FormModel $form_model, Post $post): false|Post | ||||
|     { | ||||
|         $post->content = $form_model->getItem('content'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user