Подтвердить что ты не робот

Можете ли вы создать новый экземпляр модели, не сохраняя ее в базе данных

Я хочу создать целую кучу экземпляров объекта модели в Laravel, затем выбрать оптимальный экземпляр и сохранить его в базе данных. Я знаю, что я могу создать экземпляр с Model::create([]), но это сохраняет базу данных. Если возможно, я бы хотел создать кучу моделей, а затем только "создать" тот, который лучше всего.

Возможно ли это?

Я использую Laravel 5.0

4b9b3361

Ответ 1

Вы создаете новую модель, просто создавая ее:

$model = new Model;

Затем вы можете сохранить его в базе данных на следующем этапе:

$model->save();

Ответ 2

Вы можете создавать экземпляры с помощью Model::make(). Он работает так же, как и create но не сохраняет его.

Независимо от того, является ли это лучшей практикой, совсем другое дело.

Ответ 3

Да, это возможно по-разному: вы можете использовать массовое назначение без сохранения.

Не забудьте установить сначала свойство $fillable в вашей модели.

ПУТЬ № 1: использование метода fill

$model = new YourModel;

$model->fill([
    'field' => 'value',
    'another_field' => 'another_value'
]);

$model->save();

ПУТЬ № 2: использование конструктора

$model = new YourModel([
    'field' => 'value',
    'another_field' => 'another_value'
]);

$model->save();

Документация Laravel: https://laravel.com/docs/5.7/eloquent