Heim  >  Artikel  >  PHP-Framework  >  So implementieren Sie die Anmelderegistrierungsfunktion mit Laravel 5

So implementieren Sie die Anmelderegistrierungsfunktion mit Laravel 5

PHPz
PHPzOriginal
2023-04-21 10:06:24634Durchsuche

Laravel ist ein Open-Source-Webframework, das auf der PHP-Sprache basiert und von immer mehr Entwicklern verwendet wird. Das Laravel-Framework verfügt über viele nützliche integrierte Funktionen wie Ansichten, Routing, Datenbankoperationen usw. und unterstützt auch die Erweiterung. In diesem Artikel wird erläutert, wie Sie mit Laravel 5 die Anmelde- und Registrierungsfunktion implementieren.

  1. Laravel installieren

Zuerst müssen Sie Laravel in Ihrem System installieren. Informationen zu Installationsmethoden finden Sie in der offiziellen Dokumentation von Laravel oder Sie können selbst suchen.

  1. Datenbank erstellen

Die Anmelde- und Registrierungsfunktion erfordert die Verwendung einer Datenbank zum Speichern von Benutzerinformationen. Zuvor müssen Sie eine Datenbank mit dem Namen „laravel_login“ erstellen. Sie können den folgenden Befehl in der Befehlszeile eingeben:

mysql -u username -p
CREATE DATABASE laravel_login;

wobei „Benutzername“ Ihr MySQL-Benutzername ist. Dadurch wird eine leere Datenbank mit dem Namen „laravel_login“ erstellt.

  1. Benutzertabelle erstellen

Erstellen und verwalten Sie in Laravel 5 Datenbanktabellen durch Migrationen. Zuerst müssen Sie eine Migrationsdatei generieren. Geben Sie:

php artisan make:migration create_users_table

in die Befehlszeile ein. Dieser Befehl generiert eine Migrationsdatei, die standardmäßig im Ordner „databasemigrations“ gespeichert wird.

Bearbeiten Sie diese Migrationsdatei und definieren Sie die Felder der Benutzertabelle in der Methode „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();
    });
}

Dann geben Sie den folgenden Befehl ein, um diese Migration auszuführen und die Benutzertabelle zu generieren:

php artisan migrate
  1. Erstellen Sie den Controller und die Ansicht

Connect Als nächstes erstellen Sie den Controller und die Ansicht, um die Registrierungs- und Anmeldeseiten anzuzeigen und die vom Benutzer eingegebenen Informationen zu verarbeiten. Geben Sie in der Befehlszeile Folgendes ein:

php artisan make:controller AuthController

Dieser Befehl erstellt einen Controller mit dem Namen „AuthController“, der standardmäßig im Ordner „appHttpControllers“ gespeichert wird.

Der Controller-Code lautet wie folgt:

<?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)
    {
        // 注销逻辑
    }
}

Dann müssen Sie eine Ansichtsvorlage zum Rendern des Formulars erstellen. Erstellen Sie im Ordner „resourcesviewsauth“ Dateien mit den Namen „login.blade.php“ und „register.blade.php“, bei denen es sich jeweils um Anmelde- und Registrierungsseitenvorlagen handelt.

Der Vorlagencode lautet wie folgt:

Anmeldevorlage:

@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

Registrierungsvorlage:

@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. Routing abschließen

Der letzte Schritt besteht darin, das Routing so einzurichten, dass Laravel Controller und Ansichten korrekt aufrufen kann. Fügen Sie den folgenden Code zur Datei „routesweb.php“ hinzu:

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');

Jetzt können Sie die folgende Adresse besuchen, um die Registrierungs- und Anmeldeseiten anzuzeigen:

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

und die folgende Adresse, um die Anmelde- und Abmeldevorgänge abzuschließen:

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

Durch dieses Tutorial haben Sie gelernt, wie Sie die Anmelde- und Registrierungsfunktion in Laravel 5 implementieren. Dies ist natürlich nur die grundlegendste Implementierung. In Bezug auf Betrieb, Sicherheit usw. gibt es noch viele Dinge zu beachten, die in der tatsächlichen Entwicklung kontinuierlich gelernt und verbessert werden müssen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Anmelderegistrierungsfunktion mit Laravel 5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn