Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmGdCn 155 of 252 menu
◀ ▶

Конкатенация строк в сидере Laravel

Метод Str::random даёт набор случайных букв. Для email, slug или домена часто нужен другой формат: случайная часть плюс неизменный префикс или суффикс. Для решения проблемы генерируют часть строки, а вторую неизменную часть склеивают через конкатенацию.

Давайте посмотрим на примере. Поле email должно содержать символ @ и домен. Случайные буквы без @ в базе выглядят неправдоподобно и могут ломать проверки формата. Сгенерируем локальную часть случайно, а @example.com добавим вручную.

Вставим одного пользователей с такими email:

<?php namespace Database\Seeders; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; class DatabaseSeeder extends Seeder { public function run(): void { for ($i = 0; $i < 10; $i++) { DB::table('users')->insert([ 'name' => Str::random(10), 'email' => Str::random(5) . '@example.com', ]); } } } ?>

Выполним команду на вставку:

php artisan db:seed

Сделайте сидер, который добавит в базу случайные имена доменов.

Сделайте сидер, который добавит в базу случайные email так, чтобы случайным было и то, что перед @, и то, что после.

Сделайте сидер, который добавит в базу случайные имена файлов картинок с расширением .jpg.

Сделайте сидер, который добавит в базу случайные пути к изображениям в папке /storage/photos/.

Сделайте сидер, который добавит в базу посты со случайными slug, начинающимися с post-.

Сделайте сидер, который добавит в базу товары со случайными артикулами, начинающимися с SKU-.

Сделайте сидер, который добавит в базу пользователей с invite-кодами, начинающимися с INV-.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить