Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan Laravel 5 untuk melaksanakan fungsi pendaftaran log masuk

Cara menggunakan Laravel 5 untuk melaksanakan fungsi pendaftaran log masuk

PHPz
PHPzasal
2023-04-21 10:06:24598semak imbas

Laravel ialah rangka kerja web sumber terbuka berdasarkan bahasa PHP dan digunakan oleh semakin ramai pembangun. Rangka kerja Laravel mempunyai banyak fungsi terbina dalam yang berguna, seperti pandangan, penghalaan, operasi pangkalan data, dsb., dan juga menyokong pengembangan. Artikel ini akan memperkenalkan cara menggunakan Laravel 5 untuk melaksanakan fungsi pendaftaran log masuk.

  1. Memasang Laravel

Mula-mula anda perlu memasang Laravel dalam sistem anda. Untuk kaedah pemasangan, anda boleh merujuk kepada dokumentasi rasmi Laravel atau cari sendiri.

  1. Buat pangkalan data

Fungsi log masuk dan pendaftaran memerlukan penggunaan pangkalan data untuk menyimpan maklumat pengguna. Sebelum melakukan ini, anda perlu mencipta pangkalan data bernama "laravel_login". Anda boleh memasukkan arahan berikut pada baris arahan:

mysql -u username -p
CREATE DATABASE laravel_login;

di mana "nama pengguna" ialah nama pengguna MySQL anda. Ini akan mencipta pangkalan data kosong bernama "laravel_login".

  1. Mencipta jadual pengguna

Dalam Laravel 5, cipta dan urus jadual pangkalan data melalui migrasi. Mula-mula anda perlu menjana fail migrasi. Masukkan dalam baris arahan:

php artisan make:migration create_users_table

Perintah ini akan menjana fail migrasi, yang akan disimpan dalam folder "databasemigrations" secara lalai.

Edit fail migrasi ini dan tentukan medan jadual pengguna dalam kaedah "up()":

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

Kemudian masukkan arahan berikut untuk menjalankan migrasi ini dan jana jadual pengguna :

php artisan migrate
  1. Buat pengawal dan pandangan

Seterusnya buat pengawal dan pandangan untuk memaparkan halaman pendaftaran dan log masuk serta memproses maklumat yang dimasukkan oleh pengguna. Masukkan dalam baris arahan:

php artisan make:controller AuthController

Perintah ini akan mencipta pengawal bernama "AuthController", yang akan disimpan dalam folder "appHttpControllers" secara lalai.

Kod pengawal adalah seperti berikut:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AuthController extends Controller
{
    public function showLoginForm()
    {
        return view(&#39;auth.login&#39;);
    }

    public function login(Request $request)
    {
        // 登陆逻辑
    }

    public function showRegistrationForm()
    {
        return view(&#39;auth.register&#39;);
    }

    public function register(Request $request)
    {
        // 注册逻辑
    }

    public function logout(Request $request)
    {
        // 注销逻辑
    }
}

Kemudian anda perlu mencipta templat paparan untuk memaparkan borang. Cipta fail bernama "login.blade.php" dan "register.blade.php" dalam folder "resourcesviewsauth", yang merupakan templat halaman log masuk dan pendaftaran masing-masing.

Kod templat adalah seperti berikut:

Templat log masuk:

@extends(&#39;layouts.app&#39;)

@section(&#39;content&#39;)
    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <div class="panel panel-default">
                    <div class="panel-heading">Login</div>
                    <div class="panel-body">
                        <form class="form-horizontal" method="POST" action="{{ route(&#39;login&#39;) }}">
                            {{ csrf_field() }}

                            <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                                <label for="email" class="col-md-4 control-label">E-Mail Address</label>

                                <div class="col-md-6">
                                    <input id="email" type="email" class="form-control" name="email" value="{{ old(&#39;email&#39;) }}" required autofocus>

                                    @if ($errors->has('email'))
                                        <span class="help-block">
                                            <strong>{{ $errors->first('email') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
                                <label for="password" class="col-md-4 control-label">Password</label>

                                <div class="col-md-6">
                                    <input id="password" type="password" class="form-control" name="password" required>

                                    @if ($errors->has('password'))
                                        <span class="help-block">
                                            <strong>{{ $errors->first('password') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group">
                                <div class="col-md-6 col-md-offset-4">
                                    <div class="checkbox">
                                        <label>
                                            <input type="checkbox" name="remember" {{ old(&#39;remember&#39;) ? &#39;checked&#39; : &#39;&#39; }}> Remember Me
                                        </label>
                                    </div>
                                </div>
                            </div>

                            <div class="form-group">
                                <div class="col-md-8 col-md-offset-4">
                                    <button type="submit" class="btn btn-primary">
                                        Login
                                    </button>

                                    <a class="btn btn-link" href="{{ route(&#39;password.request&#39;) }}">
                                        Forgot Your Password?
                                    </a>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection

Templat pendaftaran:

@extends('layouts.app')

@section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <div class="panel panel-default">
                    <div class="panel-heading">Register</div>
                    <div class="panel-body">
                        <form class="form-horizontal" method="POST" action="{{ route(&#39;register&#39;) }}">
                            {{ csrf_field() }}

                            <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
                                <label for="name" class="col-md-4 control-label">Name</label>

                                <div class="col-md-6">
                                    <input id="name" type="text" class="form-control" name="name" value="{{ old(&#39;name&#39;) }}" required autofocus>

                                    @if ($errors->has('name'))
                                        <span class="help-block">
                                            <strong>{{ $errors->first('name') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                                <label for="email" class="col-md-4 control-label">E-Mail Address</label>

                                <div class="col-md-6">
                                    <input id="email" type="email" class="form-control" name="email" value="{{ old(&#39;email&#39;) }}" required>

                                    @if ($errors->has('email'))
                                        <span class="help-block">
                                            <strong>{{ $errors->first('email') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
                                <label for="password" class="col-md-4 control-label">Password</label>

                                <div class="col-md-6">
                                    <input id="password" type="password" class="form-control" name="password" required>

                                    @if ($errors->has('password'))
                                        <span class="help-block">
                                            <strong>{{ $errors->first('password') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group">
                                <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>

                                <div class="col-md-6">
                                    <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
                                </div>
                            </div>

                            <div class="form-group">
                                <div class="col-md-6 col-md-offset-4">
                                    <button type="submit" class="btn btn-primary">
                                        Register
                                    </button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection
  1. Halaan lengkap

Langkah terakhir ialah menyediakan penghalaan supaya Laravel boleh memanggil pengawal dan pandangan dengan betul. Tambahkan kod berikut pada fail "routesweb.php":

Route::get('login', 'AuthController@showLoginForm')->name('login');
Route::post('login', 'AuthController@login');
Route::get('register', 'AuthController@showRegistrationForm')->name('register');
Route::post('register', 'AuthController@register');
Route::post('logout', 'AuthController@logout')->name('logout');

Kini anda boleh melawati alamat berikut untuk melihat halaman pendaftaran dan log masuk:

http://yourdomain.com/register
http://yourdomain.com/login

dan alamat berikut untuk melengkapkan operasi log masuk Dan log keluar:

http://yourdomain.com/login
http://yourdomain.com/logout
  1. Kesimpulan

Melalui tutorial ini, anda telah mempelajari cara melaksanakan fungsi log masuk dan pendaftaran dalam Laravel 5. Sudah tentu, ini hanyalah pelaksanaan yang paling asas. Dari segi operasi, keselamatan dan sebagainya, masih banyak perkara yang perlu diberi perhatian, yang perlu dipelajari dan diperbaiki secara berterusan dalam pembangunan sebenar.

Atas ialah kandungan terperinci Cara menggunakan Laravel 5 untuk melaksanakan fungsi pendaftaran log masuk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn