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

Метод for

Метод for класса Factory применяется в тестах для создания коллекции моделей с заданным количеством экземпляров. Первым параметром передаётся количество создаваемых записей, вторым - опциональный callback для дополнительной настройки каждого экземпляра. Метод возвращает экземпляр фабрики, готовый к выполнению операций make или create.

Синтаксис

<?php Model::factory()->for($count, $callback); ?>

Пример

Давайте создадим три статьи в тестовой базе данных:

<?php use App\Models\Article; use Tests\TestCase; class ArticleTest extends TestCase { public function test_create_multiple_articles() { $articles = Article::factory()->for(3)->create(); foreach ($articles as $article) { echo $article->title; } } } ?>

Результат выполнения кода:

["article 1", "article 2", "article 3"]

Пример

Давайте создадим пять пользователей с различными именами через callback:

<?php use App\Models\User; use Tests\TestCase; class UserTest extends TestCase { public function test_create_users_with_custom_names() { $users = User::factory()->for(5, function($user, $index) { return $user->state(['name' => 'user ' . ($index + 1)]); })->create(); foreach ($users as $user) { echo $user->name; } } } ?>

Результат выполнения кода:

["user 1", "user 2", "user 3", "user 4", "user 5"]

Пример

Давайте создадим десять категорий без сохранения в базу данных:

<?php use App\Models\Category; use Tests\TestCase; class CategoryTest extends TestCase { public function test_make_categories() { $categories = Category::factory()->for(10)->make(); foreach ($categories as $category) { echo $category->name; } } } ?>

Результат выполнения кода:

["category 1", "category 2", "category 3", "category 4", "category 5", "category 6", "category 7", "category 8", "category 9", "category 10"]

Смотрите также

  • метод create,
    который сохраняет модели в базу данных
  • метод make,
    который создаёт модели без сохранения
  • метод count,
    который также задаёт количество создаваемых моделей
  • метод state,
    который устанавливает пользовательские атрибуты для модели
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить