@dayna
Slug - это текстовый идентификатор, обычно используемый в URL-адресах вместо числовых идентификаторов. В Laravel можно сгенерировать slug для таблиц, используя пакет Str
и метод slug()
.
Например, допустим, у вас есть модель Post
, и вы хотите сгенерировать slug для ее таблицы. Вот как это можно сделать:
1 2 3 4 5 6 7 8 9 10 |
use IlluminateSupportStr; public static function boot() { parent::boot(); static::creating(function ($post) { $post->slug = Str::slug($post->title); }); } |
Этот код создает обработчик события creating
, который генерирует slug на основе заголовка поста ($post->title
) и сохраняет его в поле slug
.
1
|
php artisan make:migration add_slug_to_posts_table --table=posts |
1 2 3 4 5 6 |
public function up() { Schema::table('posts', function (Blueprint $table) { $table->string('slug')->unique()->after('title'); }); } |
Этот код добавляет строковое поле slug
после поля title
и устанавливает уникальный индекс на это поле.
1
|
php artisan migrate |
Теперь каждый раз при создании нового поста в таблице posts
будет генерироваться уникальный slug на основе его заголовка.