laravel框架之自帶登錄&註冊

//控制器層

 1 <?php
 2 
 3 namespace App\Http\Controllers\admin;
 4 
 5 use App\Models\admin\Users;
 6 use Illuminate\Http\Request as request;
 7 use App\Http\Controllers\Controller;
 8 use App\Http\Requests\register;
 9 use Illuminate\Support\Facades\DB;
10 
11 class UserController extends Controller
12 {
13     public function login()
14     {
15         return view('admin.login');
16     }
17     public function login_do(request $request){
18         $model = new Users();
19         if ($model->lo($request->only('email','password'))){
20             return redirect()->route('admin.showlist')->with('msg','登錄成功');
21         }
22     }
23     public function register()
24     {
25         return view('admin.register');
26     }
27     public function register_do(register $request)
28     {
29         $model = new Users();
30         if ($model->zhuce($request->all())){
31             return redirect()->route('admin.login')->with('msg','用戶已註冊成功');
32         }
33     }

 

//模型層

 1 <?php
 2 
 3 namespace App\Models\admin;
 4 
 5 use Illuminate\Database\Eloquent\Model;
 6 use Illuminate\Foundation\Auth\User as Authors;
 7 
 8 class Users extends Authors
 9 {
10     public $table = "users";
11     public function zhuce($data)
12     {
13         $this->username             =$data['username'];
14         $this->password             =bcrypt($data['password']);
15         $this->email                =$data['email'];
16         return $this->save();
17     }
18     public function lo($data)
19     {
20         if (auth()->attempt($data)){
21             return auth()->user();
22         }
23     }
24 }

 

//視圖層

//註冊頁面

  1 @extends('layouts.app')
  2 @section('title','註冊頁面')
  3 @section('content')
  4 <div class="container">
  5     <div class="row justify-content-center">
  6         <div class="col-md-8">
  7             <div class="card">
  8                 <div class="card-header">{{ __('Register') }}</div>
  9 
 10                 <div class="card-body">
 11                     <form method="POST" action="{{ route('admin.register_do') }}" aria-label="{{ __('Register') }}">
 12                         @csrf
 13 
 14                         <div class="form-group row">
 15                             <label for="username" class="col-md-4 col-form-label text-md-right">{{ __('UserName') }}</label>
 16 
 17                             <div class="col-md-6">
 18                                 <input id="username" type="text" class="form-control{{ $errors->has('username') ? ' is-invalid' : '' }}" name="username" value="{{ old('username') }}" required autofocus>
 19 
 20                                 @if ($errors->has('username'))
 21                                     <span class="invalid-feedback" role="alert">
 22                                         <strong>{{ $errors->first('username') }}</strong>
 23                                     </span>
 24                                 @endif
 25                             </div>
 26                         </div>
 27 
 28                         <div class="form-group row">
 29                             <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
 30 
 31                             <div class="col-md-6">
 32                                 <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required>
 33 
 34                                 @if ($errors->has('email'))
 35                                     <span class="invalid-feedback" role="alert">
 36                                         <strong>{{ $errors->first('email') }}</strong>
 37                                     </span>
 38                                 @endif
 39                             </div>
 40                         </div>
 41 
 42                         <div class="form-group row">
 43                             <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
 44 
 45                             <div class="col-md-6">
 46                                 <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>
 47 
 48                                 @if ($errors->has('password'))
 49                                     <span class="invalid-feedback" role="alert">
 50                                         <strong>{{ $errors->first('password') }}</strong>
 51                                     </span>
 52                                 @endif
 53                             </div>
 54                         </div>
 55 
 56                         <div class="form-group row">
 57                             <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>
 58 
 59                             <div class="col-md-6">
 60                                 <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
 61                             </div>
 62                         </div>
 63 
 64                         <div class="form-group row mb-0">
 65                             <div class="col-md-6 offset-md-4">
 66                                 <button type="submit" class="btn btn-primary">
 67                                     {{ __('Register') }}
 68                                 </button>
 69                             </div>
 70                         </div>
 71                     </form>
 72                 </div>
 73             </div>
 74         </div>
 75     </div>
 76 </div>
 77 @endsection
 78 //登錄頁面
 79 @extends('layouts.app')
 80 @section('title','登錄頁面')
 81 @section('content')
 82 <div class="container">
 83     <div class="row justify-content-center">
 84         <div class="col-md-8">
 85             <div class="card">
 86                 <div class="card-header">{{ session('msg' ?? 'Login') }}</div>
 87 
 88                 <div class="card-body">
 89                     <form method="POST" action="{{ route('admin.login_do') }}" aria-label="{{ __('Login') }}">
 90                         @csrf
 91 
 92                         <div class="form-group row">
 93                             <label for="email" class="col-sm-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
 94 
 95                             <div class="col-md-6">
 96                                 <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>
 97 
 98                                 @if ($errors->has('email'))
 99                                     <span class="invalid-feedback" role="alert">
100                                         <strong>{{ $errors->first('email') }}</strong>
101                                     </span>
102                                 @endif
103                             </div>
104                         </div>
105 
106                         <div class="form-group row">
107                             <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
108 
109                             <div class="col-md-6">
110                                 <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>
111 
112                                 @if ($errors->has('password'))
113                                     <span class="invalid-feedback" role="alert">
114                                         <strong>{{ $errors->first('password') }}</strong>
115                                     </span>
116                                 @endif
117                             </div>
118                         </div>
119 
120                         <div class="form-group row">
121                             <div class="col-md-6 offset-md-4">
122                                 <div class="form-check">
123                                     <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
124 
125                                     <label class="form-check-label" for="remember">
126                                         {{ __('Remember Me') }}
127                                     </label>
128                                 </div>
129                             </div>
130                         </div>
131 
132                         <div class="form-group row mb-0">
133                             <div class="col-md-8 offset-md-4">
134                                 <button type="submit" class="btn btn-primary">
135                                     {{ __('Login') }}
136                                 </button>
137 
138                                 <a class="btn btn-link" href="{{ route('password.request') }}">
139                                     {{ __('Forgot Your Password?') }}
140                                 </a>
141                             </div>
142                         </div>
143                     </form>
144                 </div>
145             </div>
146         </div>
147     </div>
148 </div>
149 @endsection
150 
151 //佈局頁面  layouts
152 <!DOCTYPE html>
153 <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
154 <head>
155     <meta charset="utf-8">
156     <meta http-equiv="X-UA-Compatible" content="IE=edge">
157     <meta name="viewport" content="width=device-width, initial-scale=1">
158 
159     <!-- CSRF Token -->
160     <meta name="csrf-token" content="{{ csrf_token() }}">
161 
162     <title>@yield('title')</title>
163 
164     <!-- Scripts -->
165     <script src="{{ asset('js/app.js') }}" defer></script>
166 
167     <!-- Fonts -->
168     <link rel="dns-prefetch" href="https://fonts.gstatic.com">
169     <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css">
170 
171     <!-- Styles -->
172     <link href="{{ asset('css/app.css') }}" rel="stylesheet">
173 </head>
174 <body>
175     <div id="app">
176         <nav class="navbar navbar-expand-md navbar-light navbar-laravel">
177             <div class="container">
178                 <a class="navbar-brand" href="{{ url('/') }}">
179                     {{ config('app.name', 'Laravel') }}
180                 </a>
181                 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
182                     <span class="navbar-toggler-icon"></span>
183                 </button>
184 
185                 <div class="collapse navbar-collapse" id="navbarSupportedContent">
186                     <!-- Left Side Of Navbar -->
187                     <ul class="navbar-nav mr-auto">
188 
189                     </ul>
190 
191                     <!-- Right Side Of Navbar -->
192                     <ul class="navbar-nav ml-auto">
193                         <!-- Authentication Links -->
194                         @guest
195                             <li class="nav-item">
196                                 <a class="nav-link" href="{{ route('admin.login') }}">{{ __('Login') }}</a>
197                             </li>
198                             <li class="nav-item">
199                                 <a class="nav-link" href="{{ route('admin.register') }}">{{ __('Register') }}</a>
200                             </li>
201                         @else
202                             <li class="nav-item dropdown">
203                                 <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
204                                     {{ Auth::user()->name }} <span class="caret"></span>
205                                 </a>
206 
207                                 <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
208                                     <a class="dropdown-item" href="{{ route('logout') }}"
209                                        onclick="event.preventDefault();
210                                                      document.getElementById('logout-form').submit();">
211                                         {{ __('Logout') }}
212                                     </a>
213 
214                                     <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
215                                         @csrf
216                                     </form>
217                                 </div>
218                             </li>
219                         @endguest
220                     </ul>
221                 </div>
222             </div>
223         </nav>
224 
225         <main class="py-4">
226             @yield('content')
227         </main>
228     </div>
229 </body>
230 </html>

 

posted @ 2019-07-15 14:22  情定今生~~~  阅读(388)  评论(0编辑  收藏  举报