laravel 使用自带的用户注册登录功能并修改登录方式
1,首先配置好数据库
修改.env 文件
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=feng_app DB_USERNAME=root DB_PASSWORD=123456
2,执行迁移
php artisan migrate
3,生成路由,控制器,视图文件
php artisan make:auth
4,测试是否生成成功
http://your-site/login
5,修改登录方式,使用name字段登录,而不是email。
方式1,修改文件Illuminate\Foundation\Auth\AuthenticatesUsers
vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers public function username() { // return 'email'; retrun 'name'; }
修改视图文件resources/views/auth/login.blade.php
方式2
修改控制器文件,重写username() 方法
public function username() { return 'name'; }
6,修改注册控制器
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\DB;
.......
protected function validator(array $data) { $mobile=$data['name']; $sms_code=DB::select("select sms_code from sms where phone=? order by id desc limit 1",[$mobile]); return Validator::make($data, [ 'name' => 'required|string|max:255', // 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', 'tcode' => 'required|string|max:25', 'code' => [ 'required', 'string', 'max:25', function($attribute, $value, $fail)use($sms_code) { $sms=intval($sms_code[0]->sms_code); if ($value!= $sms) { return $fail($value.'验证码错误'.$sms); } }, ], ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\User */ protected function create(array $data) { return User::create([ 'name' => $data['name'], //'email' => $data['email'], 'password' => bcrypt($data['password']), 'tcode' => $data['tcode'] ]); }
修改视图文件
@extends('layouts.app') @section('content')class="container">@endsectionclass="row">class="col-md-8 col-md-offset-2">class="panel panel-default">class="panel-heading">用户注册class="panel-body">