php注册laravel,Laravel(1) 注册重写

本文详细介绍了在 Laravel 框架中如何自定义用户注册的路由、控制器方法以及请求验证。通过创建 `UserRegisterRequest` 类来设置验证规则,并在 `AuthController` 中的 `postRegister` 方法处理注册逻辑,包括数据存储和重定向。同时,展示了如何在 `Registrar` 类中修改用户创建的步骤以适应业务需求。
摘要由CSDN通过智能技术生成

配置路由

php<?php

Route::controllers([

'auth' => 'Auth\AuthController',

]);

这种路由配置方式对应的路径方式是 访问的方式+方法名 如在浏览器中使用get方式去访问register方法 那么这个路由会自动配置到这个类下面的getRegister方法。post也是一样

建立一个自己的注册页面

我在AuthControlle里建立一个自己的视图

php<?php

public function getRegister(){

return view("auth.register");

}

上面已经说了路由的解析方式 只要配好路由就可以了

我们需要定义一个处理这个的注册处理类

接下来我会把所有的代码贴出来再代码中去讲解怎么重写 同样这个文件位于AuthController下

php<?php

public function postRegister(UserRegisterRequest $req){

//验证通过 注册用户

$data = $req->all();

$data['register_ip'] = $req->ip();

$user = $this->registrar->create($data);

return redirect()->intended('/');

}

?>

大家会发现整个注册功能非常简单 那么具体可以在哪里做了注册的限制呢

其实是在UserRegisterRequest这个文件里去对所有填写的表单数据进行了控制

php<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;

use Config;

class UserRegisterRequest extends Request {

/**

* Determine if the user is authorized to make this request.

*

* @return bool

*/

public function authorize()

{

return true;

}

/**

* Get the validation rules that apply to the request.

*

* @return array

*/

public function rules()

{

//自定义的电话号码正则表达式

$regex = Config::get('constant.phone_number_regex');

return [

//对注册表单提交的信息进行验证

"username" => ['required','min:3','max:16','unique:users'],

"phone_number" => ['required','min:3','max:16','unique:users'],

"password" => ['required','min:6','max:16','confirmed'],

"verify_code" => ['required','digits:4'],

];

}

public function sanitize()

{

return $this->all();

}

}

我们可以通过laravel自带的php artisan make:request 创建一个请求类

这个类可以对所有请求的数据进行控制,在rule里面定义好规则就可以控制请求的的数据,如果符合规则那么会继续访问。

改写注册添加数据操作

注册的目的就是为了将符合条件的数据写入用户表中 既然改写了请求的数据 那么自然也要改写请求的操作

注册成功后添加到用户数据库中 是在上面的 postRegister中的这一段代码来实现的

php<?php

$user = $this->registrar->create($data);

找到这段代码 这段代码位于 services下的Registrar.php下

php<?php

public function create(array $data)

{

$properties = [

'username' => $data['username'],

'password' => bcrypt($data['password']),

'register_time' => Carbon::now()->toDateTimeString(),

'register_ip' => $data['register_ip']

];

return User::create($properties);

$user = new User();

$user->save();

}

将这个处理函数改成符合自己业务逻辑的函数就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值