<?php
namespace App\Http\Controllers\Auth;
use App\Models\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
use App\Models\Role;
use Illuminate\Auth\Events\Registered;
class RegisterController extends Controller
{
use RegistersUsers;
protected $redirectTo = '/admin';
public function __construct()
{
$this->middleware('guest');
}
protected function validator(array $data)
{
$messages = [
'name.required' => '请填写用户名',
'name.max' => '用户名过长',
'email.required' => '请填写邮箱地址',
'email.email' => '请填写正确的邮箱地址',
'email.max' => '邮箱地址过长',
'email.unique' => '该邮箱已经被注册了',
'password.required' => '请填写密码',
'password.min' => '密码长度最少6位',
'password.confirmed' => '两次密码填写不一致',
];
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
],$messages);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
public function ajaxRegister(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
if (!$this->registered($request, $user)) {
return response([
'code' => 0,
'message' => '注册成功'
]);
}
return response([
'code' => -1,
'message' => '注册失败'
]);
}
protected function registered(Request $request, $user)
{
$role_user = Role::where(['name' => 'user'])->first();
$user->attachRole($role_user);
if ($user->hasRole('user')) {
return false;
}
return true;
}
}