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

Метод createMany

Метод createMany применяется к объекту отношения Eloquent и позволяет создать несколько связанных записей одним вызовом. В качестве параметра принимает массив массивов с данными для каждой создаваемой записи. Возвращает коллекцию созданных моделей. Метод автоматически устанавливает внешний ключ для каждой создаваемой записи.

Синтаксис

<?php Model::find($id)->relation()->createMany($data); ?>

Пример

Допустим, у нас есть модель User с отношением posts. Давайте создадим несколько постов для пользователя с id равным 1:

<?php use App\Models\User; $user = User::find(1); $res = $user->posts()->createMany([ ['title' => 'First post', 'content' => 'Content of first post'], ['title' => 'Second post', 'content' => 'Content of second post'], ['title' => 'Third post', 'content' => 'Content of third post'] ]); foreach ($res as $post) { echo $post->title . "\n"; } ?>

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

"First post" "Second post" "Third post"

Пример

Давайте создадим несколько комментариев для статьи с id равным 5 через отношение comments:

<?php use App\Models\Article; $article = Article::find(5); $res = $article->comments()->createMany([ ['user_id' => 1, 'text' => 'Great article!'], ['user_id' => 2, 'text' => 'Very useful information'], ['user_id' => 3, 'text' => 'Thanks for sharing'] ]); foreach ($res as $comment) { echo $comment->text . "\n"; } ?>

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

"Great article!" "Very useful information" "Thanks for sharing"

Пример

Метод createMany можно использовать с различными типами отношений. Давайте создадим несколько тегов для поста через отношение tags типа belongsToMany:

<?php use App\Models\Post; $post = Post::find(3); $res = $post->tags()->createMany([ ['name' => 'laravel', 'slug' => 'laravel'], ['name' => 'php', 'slug' => 'php'], ['name' => 'web', 'slug' => 'web-development'] ]); foreach ($res as $tag) { echo $tag->name . "\n"; } ?>

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

"laravel" "php" "web"

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

  • метод createMany,
    который мы рассмотрели в этой статье
  • метод saveMany,
    который сохраняет несколько уже существующих моделей
  • метод createMany,
    который создаёт несколько записей через Query Builder
  • метод create,
    который создаёт одну запись
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить