Случайный элемент массива в сидере Laravel
Не все поля должны быть
полностью случайными. Роль
пользователя - admin,
user или editor.
Зона домена - .ru
или .com. Статус заказа -
один из нескольких вариантов.
Здесь уместен выбор из
готового списка.
Создадим массив допустимых
значений и возьмём случайный
элемент через array_rand:
<?php
$roles = ['admin', 'user', 'editor'];
$role = $roles[array_rand($roles)];
?>
array_rand возвращает
случайный ключ массива.
По ключу получаем само значение.
В сидере для зоны домена:
<?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
{
$zones = ['.ru', '.com'];
$zone = $zones[array_rand($zones)];
DB::table('domains')->insert([
'name' => Str::random(10) . $zone,
]);
}
}
?>
В цикле каждая запись может получить свою зону или роль из списка - данные выглядят разнообразнее, чем одно фиксированное значение.
Сделайте сидер, который добавит в базу пользователя со случайной ролью из заданного списка.
Сделайте сидер, который добавит в базу домены со случайной зоной из списка.