Maison > cadre php > Laravel > le corps du texte

Comment utiliser Laravel 5 pour implémenter la fonction d'enregistrement de connexion

PHPz
Libérer: 2023-04-21 11:13:37
original
607 Les gens l'ont consulté

Laravel est un framework web open source basé sur le langage PHP et est utilisé par de plus en plus de développeurs. Le framework Laravel possède de nombreuses fonctions intégrées utiles, telles que les vues, le routage, les opérations de base de données, etc., et prend également en charge l'expansion. Cet article expliquera comment utiliser Laravel 5 pour implémenter la fonction de connexion et d'enregistrement.

  1. Installation de Laravel

Vous devez d'abord installer Laravel sur votre système. Pour les méthodes d'installation, vous pouvez vous référer à la documentation officielle de Laravel ou effectuer une recherche par vous-même.

  1. Créer une base de données

La fonction de connexion et d'enregistrement nécessite l'utilisation d'une base de données pour stocker les informations de l'utilisateur. Avant de faire cela, vous devez créer une base de données nommée "laravel_login". Vous pouvez saisir la commande suivante sur la ligne de commande :

mysql -u username -p
CREATE DATABASE laravel_login;
Copier après la connexion

où "nom d'utilisateur" est votre nom d'utilisateur MySQL. Cela créera une base de données vide nommée "laravel_login".

  1. Créer une table utilisateur

Dans Laravel 5, créez et gérez des tables de base de données via des migrations. Vous devez d'abord générer un fichier de migration. Entrez :

php artisan make:migration create_users_table
Copier après la connexion

dans la ligne de commande. Cette commande générera un fichier de migration, qui sera enregistré par défaut dans le dossier "databasemigrations".

Editez ce fichier de migration et définissez les champs de la table user dans la méthode "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();
    });
}
Copier après la connexion

Entrez ensuite la commande suivante pour lancer cette migration et générer la table user :

php artisan migrate
Copier après la connexion
  1. Créez le contrôleur et la vue

Connexion Créez ensuite le contrôleur et la vue pour afficher les pages d'inscription et de connexion et traiter les informations saisies par l'utilisateur. Entrez :

php artisan make:controller AuthController
Copier après la connexion

sur la ligne de commande. Cette commande créera un contrôleur nommé "AuthController", qui sera enregistré par défaut dans le dossier "appHttpControllers".

Le code du contrôleur est le suivant :

<?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)
    {
        // 注销逻辑
    }
}
Copier après la connexion

Ensuite, vous devez créer un modèle de vue pour le rendu du formulaire. Créez des fichiers nommés "login.blade.php" et "register.blade.php" dans le dossier "resourcesviewsauth", qui sont respectivement des modèles de page de connexion et d'enregistrement.

Le code du modèle est le suivant :

Modèle de connexion :

@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
Copier après la connexion

Modèle d'enregistrement :

@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
Copier après la connexion
  1. Routage complet

La dernière étape consiste à configurer le routage afin que Laravel puisse appeler correctement les contrôleurs et les vues. Ajoutez le code suivant au fichier "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');
Copier après la connexion

Vous pouvez maintenant visiter l'adresse suivante pour visualiser les pages d'inscription et de connexion:

http://yourdomain.com/register
http://yourdomain.com/login
Copier après la connexion

et l'adresse suivante pour terminer les opérations de connexion et de déconnexion:

http://yourdomain.com/login
http://yourdomain.com/logout
Copier après la connexion
  1. Conclusion

Grâce à ce tutoriel, vous avez appris comment implémenter la fonction de connexion et d'enregistrement dans Laravel 5. Bien entendu, il ne s’agit là que de l’implémentation la plus élémentaire. En termes de fonctionnement, de sécurité, etc., il reste encore beaucoup de choses auxquelles il faut prêter attention, qui doivent être continuellement apprises et améliorées dans le cadre du développement réel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!