我正在为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);
[.....]
}
}
}
但是我的听众没有工作。你知道什么是事件,我应该在创建一个新帐户之前听一听吗?
由于
答案 0 :(得分:4)
您可以绑定到所有模型内部事件,如下所示:
User::extend(function($model) {
$model->bindEvent('model.beforeSave', function() use ($model) {
// do something
});
});
您可以before
和after
使用create
,update
,save
,fetch
和delete
答案 1 :(得分:2)
或者,您可以使用,
public function boot()
{
User::creating(function($model) {
var_dump($model->name);
});
}
可以听的事件:
creating
,created
,updating
,updated
,deleting
,deleted
,saving
,saved
,{{ 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);
});