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

So implementieren Sie die Anmelderegistrierungsfunktion mit Laravel 5

PHPz
Freigeben: 2023-04-21 11:13:37
Original
645 Leute haben es durchsucht

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;
Nach dem Login kopieren

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
Nach dem Login kopieren

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();
    });
}
Nach dem Login kopieren

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

php artisan migrate
Nach dem Login kopieren
  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
Nach dem Login kopieren

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)
    {
        // 注销逻辑
    }
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren
  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');
Nach dem Login kopieren

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

http://yourdomain.com/register
http://yourdomain.com/login
Nach dem Login kopieren

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

http://yourdomain.com/login
http://yourdomain.com/logout
Nach dem Login kopieren
  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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage