Laravel 5.5:注册前执行方法 [英] Laravel 5.5: Execute a method before registration
问题描述
我正在使用默认的laravel身份验证.在我的网站上注册的每个用户都需要一个激活密码.有效PIN存储在其他表中.每当用户注册时,我都想测试PIN码是否有效.那么,在注册用户之前,我可以在RegisterController中重写任何可以执行的方法吗?
I'm using the default laravel authentication. Every user who registeres in my site needs a activation pin. The valid PINs are stored in a different table. Whenever a user registeres, I want to test if the PIN is valid or not. So, is there any method that I can override in RegisterController that executes before regstering the user?
推荐答案
是.您可以在RegisterController中重写受保护的寄存器方法.这是一个简单的解决方案.我这样做是为了验证参数,保存新用户并在我的一个项目中强制返回JSON.
Yes. You can override protected register method in RegisterController. This is a simple solution. I do this to validate params, save a new user, and force return JSON in one of my projects.
例如:
protected function register(Request $request)
{
$validator = Validator::make($request->all(), [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users',
'phone' => 'required',
'pin' => 'required'
]);
//Check your PIN here, if it's wrong, append errors array
if ($validator->fails())
throw new ValidationFailed($validator->errors());
User::create([
'first_name' => $request->input('first_name'),
'last_name' => $request->input('last_name'),
'email' => $request->input('email'),
'phone' => $request->input('phone'),
'password' => bcrypt(str_random(10)),
'remember_token' => str_random(10),
]);
return ResponseJSON::make(trans('responses.registered'));
}
这篇关于Laravel 5.5:注册前执行方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!