php<?php Route::controllers([ 'auth' => 'Auth\AuthController', ]);
这种路由配置方式对应的路径方式是 访问的方式+方法名 如在浏览器中使用get方式去访问register方法 那么这个路由会自动配置到这个类下面的getRegister方法。post也是同样php
我在AuthControlle里创建一个本身的视图laravel
php<?php public function getRegister(){ return view("auth.register"); }
上面已经说了路由的解析方式 只要配好路由就能够了git
接下来我会把全部的代码贴出来再代码中去讲解怎么重写 一样这个文件位于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里面定义好规则就能够控制请求的的数据,若是符合规则那么会继续访问。segmentfault
注册的目的就是为了将符合条件的数据写入用户表中 既然改写了请求的数据 那么天然也要改写请求的操做浏览器
注册成功后添加到用户数据库中 是在上面的 postRegister中的这一段代码来实现的app
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(); }
将这个处理函数改为符合本身业务逻辑的函数就好了post