دورة laravel للمبتدئين الحادي عشر


فهاد الدرس الحادي عشر من دورة laravel للمبتدئين غادي نكملوا الدورة ديالنا فمنبعد ما درنا تسجيل المستخدم فقاعدة البيانات فالجزء السابق فهاد الجزء غادي نشوفوا كيفاش نديرو تسجيل الدخول.  


1- إضافة فورم تسجيل الدخول

غادي نمشي ل views تما غادي نزيد ملف جديد سميه login.blade.php فيه غادي تكون عندي الفورم لي كتمكن المستخدم باش يتكونيكطا وارسالها ل route user.login لي غادي نزيدوه من بعد.

فالكود لي غادي تزيد فالملف هو :

                                //
<!doctype html>
<html lang="{{ app()->getLocale() }}">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Laravel</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
        <!-- Fonts -->
        <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
    </head>
    <body>
        {{-- part 3 --}}
        <div class="container">
            <div class="row mt-4">
                <div class="col-md-6">
                    <h3>Connexion</h3>
                    <hr>
                    @if(Session::has('success'))
                        <div class="alert alert-success">{{Session::get('success')}}</div>
                    @endif
                    {{-- part 3 --}}
                    @foreach($errors->all() as $error)
                        <div class="alert alert-danger">{{$error}}</div>
                    @endforeach
                    <form action="{{route('user.login')}}" method="post">
                        {{csrf_field()}}
                        <div class="form-group">
                            <input type="text" placeholder="Email"  name="email" class="form-control">
                        </div>
                        <div class="form-group">
                            <input type="text" placeholder="Mot de passe"  name="password" class="form-control">
                        </div>
                        <div class="form-group">
                            <button class="btn btn-primary" type="submit">Valider</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </body>
</html>
                            

2- إضافة les fonctions ل CONTROLLER USERSCONTROLLER

ف UsersController غادي نزيد 2  ديال les fonctions سميتهم :

- login لي كنسترجع بها الفورم لي هي الملف login لي زدنا.

- auth لي كتمكن من استرجاع المعلومات من الفورم من بعد كنخدم بل class Auth لي فيها méthode statique attempt لي كتمكن من التحقق بلي المستخدم فعلا مسجل فقاعدة البيانات منبعد كنوجه المستخدم مع رسالة نجاح.

الكود لي زدنا فالملف UsersController.php هو :

                                //
<?php

namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use Auth;

class UsersController extends Controller
{
    //
    public function register(){
        return view('register');
    }
    public function store(Request $request){
        $user = new User();
        $user->name = $request->name;
        $user->email = $request->email;
        $user->password = bcrypt($request->password);
        $user->save();
        return redirect('/user/register')->with(['success'=>'utilisateur ajouté']);
    }
    public function login(){
        return view('login');
    }
    public function auth(Request $request){
        if(Auth::attempt(['email'=>$request->email,'password'=>$request->password])){
            return redirect('/user/login')->with(['success'=>'vous êtes connecté']);
        }
    }
}
                            

3- إضافة LES ROUTES ف WEB.PHP

فغادي تمشي للملف web.php تما غادي نزيد les routes ديالي منبعد ما نزيدهم غادي تمشي للرابط :

http://localhost/laravelProject/public/user/login  غادي ندخل المعلومات نضغط على valider غادي تعرض رسالة بلي راني كونيكطي كيف كتشوف فالصورة :


الكود لي زدنا ف web.php هو :

                                //
Route::get('/user/login','UsersController@login');
Route::post('/user/auth','UsersController@auth')->name('user.login');