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

Событие created

Событие created принадлежит к системе событий Eloquent моделей в Laravel и запускается после того, как новая запись была успешно сохранена в базу данных. Это событие позволяет выполнить дополнительные действия сразу после создания модели, например, отправить уведомление, обновить связанные данные или выполнить логирование. Событие получает экземпляр созданной модели в качестве параметра.

Синтаксис

<?php Model::created(function ($model) { // Additional logic after model creation }); ?>

Пример

Давайте создадим модель User и зарегистрируем событие created для отправки приветственного письма:

<?php namespace AppProviders; use AppModelsUser; use IlluminateSupportServiceProvider; class EventServiceProvider extends ServiceProvider { public function boot() { User::created(function ($user) { // Send welcome email echo "Welcome email sent to {$user->email}"; }); } } ?>

Теперь при создании нового пользователя:

<?php namespace AppHttpControllers; use AppModelsUser; class UserController extends Controller { public function store() { $user = User::create([ 'name' => 'John Doe', 'email' => 'john@example.com', ]); echo "User created with ID: {$user->id}"; } } ?>

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

"Welcome email sent to john@example.com" "User created with ID: 1"

Пример

Давайте используем событие created для автоматического создания связанной записи. При создании пользователя будем создавать профиль:

<?php namespace AppModels; use IlluminateDatabaseEloquentModel; class User extends Model { protected static function booted() { static::created(function ($user) { $user->profile()->create([ 'bio' => 'Default bio', 'avatar' => 'default.jpg', ]); echo "Profile created for user {$user->id}"; }); } public function profile() { return $this->hasOne(Profile::class); } } ?>
<?php namespace AppHttpControllers; use AppModelsUser; class UserController extends Controller { public function store() { $user = User::create([ 'name' => 'Jane Smith', 'email' => 'jane@example.com', ]); $res = $user->profile; echo "User: {$user->name}, Profile bio: {$res->bio}"; } } ?>

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

"Profile created for user 2" "User: Jane Smith, Profile bio: Default bio"

Пример

Давайте используем событие created для логирования создания записи. Будем записывать информацию о создании в лог-файл:

<?php namespace AppModels; use IlluminateDatabaseEloquentModel; use IlluminateSupportFacadesLog; class Article extends Model { protected $fillable = ['title', 'content', 'user_id']; protected static function booted() { static::created(function ($article) { Log::info('Article created', [ 'article_id' => $article->id, 'title' => $article->title, 'user_id' => $article->user_id, ]); echo "Article logged successfully"; }); } } ?>
<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function store() { $article = Article::create([ 'title' => 'Laravel Events', 'content' => 'Article content about events', 'user_id' => 1, ]); echo "Article created: {$article->title}"; } } ?>

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

"Article logged successfully" "Article created: Laravel Events"

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

  • событие creating,
    которое вызывается перед созданием модели
  • событие saved,
    которое вызывается после сохранения модели (как создание, так и обновление)
  • событие updating,
    которое вызывается перед обновлением модели
  • событие updated,
    которое вызывается после обновления модели
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить