收听事件:用户::创建

时间:2017-02-09 07:31:40

标签: laravel events octobercms

我正在为OctoberCms做一个新的插件。我想限制某些特定域名的前端注册。

我试过这个:

class Plugin extends PluginBase
{
[......]
    public function boot()
    {
        // Listen for user creation
        Event::listen('eloquent.creating:  October\Rain\Auth\Models\User', function($model) {
        {
            $this->checkDomains($user);
            [.....]
        }
    }
}

但是我的听众没有工作。你知道什么是事件,我应该在创建一个新帐户之前听一听吗?

由于

4 个答案:

答案 0 :(得分:4)

您可以绑定到所有模型内部事件,如下所示:

User::extend(function($model) {
    $model->bindEvent('model.beforeSave', function() use ($model) {
        // do something
    });
});

您可以beforeafter使用createupdatesavefetchdelete

答案 1 :(得分:2)

或者,您可以使用,

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

可以听的事件: creatingcreatedupdatingupdateddeletingdeletedsavingsaved,{{ 1}},restoring

答案 2 :(得分:1)

您指的是前端用户的注册吗? - 我假设您正在使用在Account component中触发了rainlab.user.beforeRegister事件的RainLab用户插件,或者您可以在模型beforeCreate()事件中添加自定义插件

然后只需在插件的根目录中创建一个init.php文件,并在那里列出您的听众:

Event::listen('rainlab.user.beforeRegister', 'Path\To\ListenersClass');

答案 3 :(得分:1)

您还可以使用以下内容:

\Event::listen('eloquent.creating: RainLab\User\Models\User', function($user){
    $this->checkDomains($user);
});