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

Метод has

Метод has класса Factory применяется для определения отношения "один ко многим" при создании моделей в тестах. Первый параметр - это фабрика дочерней модели или количество создаваемых экземпляров. Метод возвращает экземпляр фабрики, позволяя строить цепочки вызовов.

Синтаксис

<?php Factory::has($factory, $count = 1); ?>

Пример

Давайте создадим категорию с двумя статьями:

<?php use AppModelsCategory; use AppModelsArticle; use IlluminateFoundationTestingRefreshDatabase; $res = Category::factory() ->has(Article::factory()->count(2)) ->create(); echo $res->articles->count(); ?>

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

"2"

Пример

Давайте создадим пользователя с тремя постами, используя сокращённый синтаксис:

<?php use AppModelsUser; use AppModelsPost; use IlluminateFoundationTestingRefreshDatabase; $user = User::factory() ->hasPosts(3) ->create(); echo $user->posts->count(); ?>

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

"3"

Пример

Давайте создадим пост с комментариями и укажем состояние для дочерних моделей:

<?php use AppModelsPost; use AppModelsComment; use IlluminateFoundationTestingRefreshDatabase; $res = Post::factory() ->has( Comment::factory() ->count(2) ->state(['approved' => true]) ) ->create(); foreach ($res->comments as $comment) { echo $comment->approved; } ?>

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

"1" "1"

Пример

Давайте создадим родительскую модель и сразу получим связанные модели с помощью метода create:

<?php use AppModelsAuthor; use AppModelsBook; use IlluminateFoundationTestingRefreshDatabase; $res = Author::factory() ->hasBooks(2) ->create(); $titles = $res->books->pluck('title')->toArray(); print_r($titles); ?>

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

["book 1", "book 2"]

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

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