РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplrSpFkUn 118 of 210 menu

Уникальные значения через Faker в Laravel

При цикле из многих пользователей fake()->email() может повториться. Если колонка уникальна, база вернёт ошибку.

Модификатор unique запоминает уже выданные значения и не повторяет их в рамках одного запуска:

<?php namespace App\Http\Controllers; class UserController extends Controller { public function index() { dump(fake()->unique()->email()); dump(fake()->unique()->email()); dump(fake()->unique()->email()); } } ?>

unique ставят перед методом - цепочкой. В сидере с циклом:

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

Уникальность действует до конца текущего сида. Новый db:seed начинает счёт заново. Выполним:

php artisan db:seed

Сгенерируйте 5 unique()->email() через dump.

В сидере вставьте 5 юзеров с unique()->email().

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