Генерация slug через Faker в Laravel
Slug нужен для URL. Метод
slug у Faker сразу
возвращает латинскую строку
с дефисами. Можно передать
число слов.
Посмотрим значения:
<?php
namespace App\Http\Controllers;
class PostController extends Controller
{
public function index()
{
dump(fake()->slug());
dump(fake()->slug(2));
dump(fake()->slug(4));
}
}
?>
В сидере все основные поля поста от Faker:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
DB::table('posts')->insert([
'title' => fake()->sentence(3),
'slug' => fake()->slug(3),
'text' => fake()->paragraph(3),
]);
}
}
?>
Если slug должен совпадать
с заголовком - используйте
Str::slug($title).
Faker удобен, когда slug
может быть любым. Выполним сид:
php artisan db:seed
Вставьте пост с slug
от fake()->slug(3).
Когда выбрать fake()->slug(),
а когда Str::slug()?