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

Метод make

Метод make применяется к модели Eloquent и возвращает новый экземпляр модели с заполненными атрибутами. Первым параметром передаётся массив атрибутов для заполнения модели. В отличие от метода create, метод make не сохраняет модель в базе данных, а только создаёт её экземпляр. Это полезно, когда нужно подготовить данные перед сохранением или создать объект для отображения в представлении.

Синтаксис

<?php Model::make($attributes); ?>

Пример

Давайте создадим новый экземпляр модели Article без сохранения в базе данных:

<?php use AppModelsArticle; $article = Article::make([ 'title' => 'article 1', 'content' => 'Content of article 1', 'status' => 'draft' ]); echo $article->title; echo $article->status; ?>

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

"article 1" "draft"

Пример

Созданный методом make экземпляр можно дополнить перед сохранением:

<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateSupportFacadesAuth; class ArticleController extends Controller { public function store() { $article = Article::make([ 'title' => 'article 1', 'content' => 'Content of article 1' ]); $article->user_id = Auth::id(); $article->status = 'published'; $article->save(); return redirect()->route('articles.index'); } } ?>

Пример

Метод make часто используется для создания связанных моделей через отношения:

<?php namespace AppHttpControllers; use AppModelsUser; use AppModelsArticle; class ArticleController extends Controller { public function createForUser($userId) { $user = User::find($userId); $article = $user->articles()->make([ 'title' => 'article 1', 'content' => 'Content of article 1' ]); return view('articles.edit', ['article' => $article]); } } ?>

Пример

Метод make позволяет создавать несколько экземпляров через коллекции:

<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function prepareDrafts() { $articles = collect([ ['title' => 'article 1', 'content' => 'Content 1'], ['title' => 'article 2', 'content' => 'Content 2'], ['title' => 'article 3', 'content' => 'Content 3'] ])->map(function ($data) { return Article::make($data); }); foreach ($articles as $article) { echo $article->title; } } } ?>

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

"article 1" "article 2" "article 3"

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

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