首页 > 解决方案 > 在 laravel 8 中创建用户时,如何在模型中触发事件?

问题描述

我有一个名为 EventtypeController 的控制器,它有一个存储功能,我想在创建用户时触发此事件。我尝试阅读 laravel doc 上的事件页面,但还没有运气。

每当创建用户时,如何在用户模型中触发该 eventtype create 函数?

这是我尝试过的:

public function boot()
{
    User::creating(function($model) {
        var_dump($model->name);
    });
}

它说:“方法 'App\Models\User::boot()' 与方法 'Illuminate\Foundation\Auth\User::boot()' 不兼容。”

标签: laravellaravel-8

解决方案


使用像这样的观察者

class UserObserver
{
    public function created(User $user)
    {
        // do something when a user is created
    }
}

class EventServiceProvider extends ServiceProvider
{
    public function boot()
    {
        User::observe(UserObserver::class);
    }
}

推荐阅读