Php OctoberCMS如何覆盖用户插件onRegister()函数?
我用的是基于拉威尔的 我试图重写Php OctoberCMS如何覆盖用户插件onRegister()函数?,php,laravel,laravel-5,octobercms,Php,Laravel,Laravel 5,Octobercms,我用的是基于拉威尔的 我试图重写onRegister()函数 我想将用户名限制为仅包含字母数字的alpha_-dash,并限制为50个字符 中的原始函数 我的覆盖 用户事件文档 错误 "Call to undefined method [loginAttribute]" 如果我删除If语句和loginatAttribute,只使用$rules['username'],我仍然能够用非字母数字字符注册名称 我已经能够使用它扩展新代码,但不能覆盖现有代码。我认为您不理解这里的页面循环 rainla
onRegister()
函数
我想将用户名限制为仅包含字母数字的alpha_-dash
,并限制为50个字符
中的原始函数
我的覆盖
用户事件文档
错误
"Call to undefined method [loginAttribute]"
如果我删除If语句和loginatAttribute,只使用$rules['username'],我仍然能够用非字母数字字符注册名称
我已经能够使用它扩展新代码,但不能覆盖现有代码。我认为您不理解这里的页面循环
rainlab.user.register
在用户已注册后调用。也就是说,他们已经通过了验证,并且已经存在,用户名无效
您可以改为绑定到用户模型的模型。在保存事件之前,请自行验证用户名:
public function boot() {
\RainLab\User\Models\User::extend(function($model) {
$model->bindEvent('model.beforeSave', function() use ($model) {
$validator = \Validator::make($model->attributes, [
'username' => 'required|alpha_dash|between:2,50',
]);
if ($validator->fails()) {
throw new \ValidationException([
'username' => 'Username must contain alphanumeric values only, and be between 2 and 50 characters in length',
]);
}
});
});
}
我有个新问题也许你能帮我
"Call to undefined method [loginAttribute]"
public function boot() {
\RainLab\User\Models\User::extend(function($model) {
$model->bindEvent('model.beforeSave', function() use ($model) {
$validator = \Validator::make($model->attributes, [
'username' => 'required|alpha_dash|between:2,50',
]);
if ($validator->fails()) {
throw new \ValidationException([
'username' => 'Username must contain alphanumeric values only, and be between 2 and 50 characters in length',
]);
}
});
});
}