1. 首先确定用户注册的路由
我们在安装好laravel的时候默认生成的注册是用邮箱进行注册的,并且有些选项不需要,有些还需要加一些表单选项
我们注册的话,并不是可以随便注册的,只有一些超级管理员才能进行注册
首先我们使用上次创建的UserController
进行配置,如果没有的话,可以使用PHP artisan make:controller UserController
创建一个控制器类
然后创建两条路由Route::get('register','UserController@getRegister')
和Route::post('register','UserController@postRegister')
前者是显示一个注册的页面get
请求,后面是注册账号的post
请求。
2. 显示注册账号页面
这个使用的是getRegister
这个方法,这个方法只需要显示一个视图所以并没有特别的逻辑
rush:PHP;">
public function getRegister()
{
return view('auth.register');
}
3. 请求注册账号
这个使用的是postRegister
这个方法
我们在往数据库里插入一条用户纪录的时候,可以使用User::create($data)
进行插入。
$data
是个数组,里面存放了每个字段的键和值
'required|unique:finance_enewsuser','password' => 'required|between:6,20|confirmed'
];
$messages = [
'required'=>':attribute不能为空','unique'=>'用户名已被注册','between' => '密码必须是6~20位之间','confirmed' => '新密码和确认密码不匹配'
];
$username = $request->input('username');
$password = $request->input('password');
$group = $request->input('group');
$data = $request->all();
$validator = Validator::make($data,$rules,$messages);
if ($validator->fails()) {
return back()->withErrors($validator);
}
$data = [
'username' => $username,'password' => bcrypt($password),'groupid' => $group,'checked' => 0,'styleid' => 1,'filelevel' => 0,'loginnum' => 0,'lasttime' => time(),'lastip' => '127.0.0.1','truename' => '','email' => '','pretime' => time(),'preip' => '127.0.0.1',];
User::create($data); //插入一条新纪录,并返回保存后的模型实例
//如果注册后还想立即登录的话,可以使用$user = User::create($data); Auth::login($user); 进行认证
return redirect('/');
}
4. 完成后的示例
UserController
public function postRegister(Request $request)
{
$rules = [
'username'=>'required|unique:finance_enewsuser',$messages);
if ($validator->fails()) {
return back()->withErrors($validator);
}
$data = [
'username' => $username,];
User::create($data); //插入一条新纪录,并返回保存后的模型实例
return redirect('/');
}
{
$rules = [
'username'=>'required|unique:finance_enewsuser',$messages);
if ($validator->fails()) {
return back()->withErrors($validator);
}
$data = [
'username' => $username,];
User::create($data); //插入一条新纪录,并返回保存后的模型实例
return redirect('/');
}
register.blade
rush:PHP;">