Метод create
Метод create вызывается на модели Eloquent и принимает массив данных для новой записи. Он автоматически заполняет модель переданными атрибутами, сохраняет запись в базе данных и возвращает созданный объект модели. Важно отметить, что перед использованием метода create необходимо определить свойство $fillable или $guarded в модели для защиты от массового присваивания.
Синтаксис
<?php
Model::create(array $attributes);
?>
Пример
Давайте создадим новую статью с заголовком и содержимым:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Article extends Model
{
protected $fillable = [
'title',
'content',
'status'
];
}
?>
<?php
use AppModelsArticle;
$res = Article::create([
'title' => 'article',
'content' => 'Content of the article',
'status' => 'published'
]);
echo $res->id;
?>
Результат выполнения кода:
"5"
Пример
Создадим пользователя с указанием имени и email:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class User extends Model
{
protected $fillable = [
'name',
'email',
'password'
];
}
?>
<?php
use AppModelsUser;
$res = User::create([
'name' => 'user',
'email' => 'user@example.com',
'password' => bcrypt('password123')
]);
echo $res->name;
?>
Результат выполнения кода:
"user"
Пример
Создадим запись и проверим, была ли она успешно создана:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Category extends Model
{
protected $fillable = ['name'];
}
?>
<?php
use AppModelsCategory;
$res = Category::create(['name' => 'category']);
if ($res->wasRecentlyCreated) {
echo 'created';
} else {
echo 'not created';
}
?>
Результат выполнения кода:
"created"
Смотрите также
-
метод
firstOrCreate,
который находит первую запись по условиям или создаёт новую -
метод
updateOrCreate,
который обновляет существующую запись или создаёт новую -
метод
save,
который сохраняет существующую модель в базу данных -
метод
insert,
который вставляет записи через Query Builder