Разница между методами firstOrCreate и firstOrNew в Laravel заключается в следующем:
- firstOrCreate попытается найти запись в базе данных, используя указанные пары столбец/значение. laravel.su Если модель не может быть найдена в базе данных, будет вставлена запись с указанными атрибутами. laravel.su
- firstOrNew также попытается найти в базе данных запись, соответствующую указанным атрибутам. laravel.su Однако, если модель не найдена, будет возвращён новый экземпляр модели. laravel.su При этом модель, возвращённая firstOrNew, ещё не сохранена в базе данных, для этого нужно вручную вызвать метод save. laravel.su
Выбор между этими методами зависит от того, что нужно сделать. stackoverflow.com Если нужно изменить экземпляр модели до её первого сохранения (например, установить имя или какое-то обязательное поле), следует использовать firstOrNew. stackoverflow.com Если нужно сразу создать новый экземпляр модели в базе данных без изменений, можно использовать firstOrCreate. stackoverflow.com