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

  
{{ csrf_field() }}
@if ($errors->has('name')) {{ $errors->first('name') }} @endif
@if ($errors->has('password')) {{ $errors->first('password') }} @endif

方式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">
class="row">
class="col-md-8 col-md-offset-2">
class="panel panel-default">
class="panel-heading">用户注册
class="panel-body">
class="form-horizontal" method="POST" action="{{ route('register') }}"> {{ csrf_field() }}
class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
class="col-md-6"> "name" type="text" class="form-control" name="name" value="{{ old('tcode') }}" required autofocus> @if ($errors->has('name')) class="help-block"> {{ $errors->first('name') }} @endif
class="form-group">
class="col-md-4"> "code" type="text" class="form-control" name="code" value="{{ old('code') }}" required> @if ($errors->has('code')) class="help-block"> {{ $errors->first('code') }} @endif
class="col-md-2">
class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
class="col-md-6"> "password" type="password" class="form-control" name="password" required> @if ($errors->has('password')) class="help-block"> {{ $errors->first('password') }} @endif
class="form-group">
class="col-md-6"> "password-confirm" type="password" class="form-control" name="password_confirmation" required>
class="form-group{{ $errors->has('tcode') ? ' has-error' : '' }}">
class="col-md-4"> "tcode" type="text" class="form-control" name="tcode" value="{{ old('tcode') }}" required> class="help-block">
class="form-group">
class="col-md-6 col-md-offset-4">
@endsection
PHP