首页 > 开发 > PHP > 正文

示例详解Laravel的注册重构

2024-05-04 22:28:42
字体:
来源:转载
供稿:网友

1. 首先确定用户注册的路由

我们在安装好laravel的时候默认生成的注册是用邮箱进行注册的,并且有些选项不需要,有些还需要加一些表单选项

我们注册的话,并不是可以随便注册的,只有一些超级管理员才能进行注册

首先我们使用上次创建的UserController进行配置,如果没有的话,可以使用php artisan make:controller UserController创建一个控制器类

然后创建两条路由Route::get('register', 'UserController@getRegister')Route::post('register', 'UserController@postRegister')

前者是显示一个注册的页面get请求,后面是注册账号的post请求。

2. 显示注册账号页面

这个使用的是getRegister这个方法,这个方法只需要显示一个视图所以并没有特别的逻辑

public function getRegister(){ return view('auth.register');}

3. 请求注册账号

这个使用的是postRegister这个方法

注册账号的话和重置密码一样,而且比注册账号还要简单点。

我们在往数据库里插入一条用户纪录的时候,可以使用User::create($data)进行插入。

$data是个数组,里面存放了每个字段的键和值

public function postRegister(Request $request){ $rules = [  'username'=>'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 getRegister(){ return view('auth.register');}public function postRegister(Request $request){ $rules = [  'username'=>'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); //插入一条新纪录,并返回保存后的模型实例 return redirect('/');}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表