laravel表單注冊怎么寫

laravel 是目前最流行的 php 開發框架之一,其強大而靈活的特性為 web 開發者提供了強大的開發工具和 api。在 laravel 中,表單注冊是一個很常見的功能,今天我們就來學習如何用 laravel 實現表單注冊。

首先,我們需要在 Laravel 中創建一個路由,用于處理表單提交和顯示表單頁面。我們可以在 routes/web.php 文件中添加以下代碼:

Route::get('/register', 'AuthRegisterController@showRegistrationForm')->name('register'); Route::post('/register', 'AuthRegisterController@register')->name('register');

在這里,我們定義了兩個路由,一個是 GET 請求路由,用于顯示注冊表單頁面,另一個是 POST 請求路由,用于處理表單提交數據。我們還給這兩個路由分別起了名字為 register。

接下來,我們需要定義一個控制器,來處理和渲染表單頁面,我們可以使用以下命令來生成一個控制器:

php artisan make:controller AuthRegisterController

然后,我們需要在該控制器中編寫處理表單和渲染表單的方法,代碼如下:

namespace AppHttpControllersAuth;  use AppHttpControllersController; use IlluminateFoundationAuthRegistersUsers; use IlluminateSupportFacadesValidator; use IlluminateHttpRequest;  class RegisterController extends Controller {     use RegistersUsers;      protected $redirectTo = '/home';      public function __construct()     {         $this->middleware('guest');     }      public function showRegistrationForm()     {         return view('auth.register');     }      public function register(Request $request)     {         $this->validator($request->all())->validate();          $user = $this->create($request->all());          $this->guard()->login($user);          return redirect($this->redirectTo);     }      protected function validator(array $data)     {         return Validator::make($data, [             'name' => ['required', 'string', 'max:255'],             'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],             'password' => ['required', 'string', 'min:8', 'confirmed'],         ]);     }      protected function create(array $data)     {         return User::create([             'name' => $data['name'],             'email' => $data['email'],             'password' => Hash::make($data['password']),         ]);     } }

在這里,我們使用了 Laravel 內置的 RegistersUsers trait,來提供注冊用戶功能,它包含了一些常用方法,如 validator() 方法和 create() 方法。這些方法分別用于驗證表單數據和創建新用戶。

在 showRegistrationForm() 方法中,我們返回了一個模板視圖,該視圖包含了我們的表單內容。在 register() 方法中,我們首先使用 validator() 方法來驗證表單數據,如果驗證通過,我們就使用 create() 方法來創建新用戶,并使用 guard() 方法來登錄該用戶。

最后,我們需要創建一個表單視圖,來呈現給用戶注冊表單。我們可以在 resources/views/auth/register.blade.php 文件中添加以下內容:

<div class="container">     <div class="row justify-content-center">         <div class="col-md-8">             <div class="card">                 <div class="card-header">Register</div>                  <div class="card-body">                     <form method="POST" action="%7B%7B%20route('register')%20%7D%7D">                         @csrf                          <div class="form-group row">                             <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>                              <div class="col-md-6">                                 <input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>                                  @error('name')                                     <span class="invalid-feedback" role="alert">                                         <strong>{{ $message }}</strong>                                     </span>                                 @enderror                             </div>                         </div>                          <div class="form-group row">                             <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>                              <div class="col-md-6">                                 <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email">                                  @error('email')                                     <span class="invalid-feedback" role="alert">                                         <strong>{{ $message }}</strong>                                     </span>                                 @enderror                             </div>                         </div>                          <div class="form-group row">                             <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>                              <div class="col-md-6">                                 <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">                                  @error('password')                                     <span class="invalid-feedback" role="alert">                                         <strong>{{ $message }}</strong>                                     </span>                                 @enderror                             </div>                         </div>                          <div class="form-group row">                             <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>                              <div class="col-md-6">                                 <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password"> </div>                         </div>                          <div class="form-group row mb-0">                             <div class="col-md-6 offset-md-4">                                 <button type="submit" class="btn btn-primary">                                     {{ __('Register') }}                                 </button>                             </div>                         </div>                     </form>                 </div>             </div>         </div>     </div> </div>

在這里,我們使用了 Bootstrap 框架來美化表單樣式。其中,我們使用了 @csrf 指令,來生成一個隱藏的 CSRF token 輸入域,同時也在 form 標簽的 action 屬性中指定了注冊路由。

到此為止,Laravel 表單注冊就完成了。我們可以使用 php artisan serve 命令來啟動本地開發服務器,并訪問 http://localhost:8000/register 來查看注冊表單頁面。當我們填寫正確的表單數據并提交表單時,系統就會注冊新用戶并自動登錄他們。

總之,用 Laravel 實現表單注冊就是這么簡單。Laravel 提供了很多內置的功能和工具,來幫助我們實現各種各樣的普通和復雜的 Web 應用。如果你善于利用這些功能和工具,就可以快速構建出高效、穩定、易維護的 Web 應用。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享