2017-02-09 89 views
1

我正在爲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); 
      [.....] 
     } 
    } 
} 

但我的監聽器不能正常工作。你知道這個活動是什麼,我應該在創建一個新帳戶之前收聽。

感謝

回答

3

您可以綁定到所有型號的內部事件,像這樣的:

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

您可以使用beforeaftercreateupdatesavefetchdelete

+0

如果他想限制註冊,他應該使用'beforeCreate'事件不是'beforeSave' - 後者將在模型前被解僱保存,創建或更新 –

1

或者,你可以使用,

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

可用事件監聽: creatingcreatedupdatingupdateddeletingdeletedsavingsavedrestoringrestored

1

你指的是一個前端用戶的註冊? - 我假設你正在使用的RainLab用戶插件,它具有在Account component或者你可以在模型的beforeCreate()事件添加自定義一個

然後只需創建一個init.php文件在你的插件的根目錄,並觸發的事件rainlab.user.beforeRegister列出你的聽衆有:

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