Application de gestion d'un hôtel ب laravel 5.5 الجزء الخامس
نظرة سريعة بالفيديو
1- الملف Admin.php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Admin extends Authenticatable
{
//
protected $fillable = ['name','email','password'];
}
2- الملف AdminsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Admin;
use Auth;
use Session;
class AdminsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
return view('admins.index',['admins'=>Admin::all()]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
return view('admins.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
//
$this->validate($request,[
'name' => 'required|min:6',
'password' => 'required|min:6',
'email' => 'required',
]);
$admin = new Admin();
$admin->name = $request->name;
$admin->password = bcrypt($request->password);
$admin->email = $request->email;
$admin->save();
return redirect()->route('admins.index')->with(['success'=>'Compte crée avec succés']);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
$admin = Admin::findOrFail($id);
$admin->delete();
return redirect()->route('admins.index')->with(['success'=>'Admin Supprimé']);
}
public function getLogin(){
return view('admins.login');
}
public function login(Request $request){
$this->validate($request,[
'password' => 'required|min:6',
'email' => 'required',
]);
if(Auth::guard('admins')->attempt(['email' => $request->email,'password' => $request->password])){
$_SESSION['admin'] = true;
return redirect()->route('home');
}else{
return redirect()->route('admins.login')->with(['fail'=>'Email ou mot de passe est incorrect']);
}
}
public function logout(){
Auth::guard('admins')->logout();
$_SESSION['admin'] = false;
return redirect()->route('home');
}
}
3- الملف admins/create.blade.php
@extends('layouts.app')
@section('styles')
@endsection
@section('content')
<div class="row">
<div class="medium-offset-4 medium-11 columns">
<h4>Ajouter un admin</h4>
<form action="{{route('admins.store')}}" method="post">
@foreach($errors->all() as $error)
<div class="alert-danger">{{$error}}</div><br>
@endforeach
<hr>
<div class="medium-4 columns">
<label class="label info">Nom & Prénom</label>
<input name="name" type="text" placeholder="Votre Nom & Prénom">
</div>
<div class="medium-4 columns">
<label class="label info">Email</label>
<input name="email" type="text" placeholder="Votre Email">
</div>
<div class="medium-4 columns">
<label class="label info">Mot de passe</label>
<input name="password" type="password" placeholder="Votre Mot de passe">
<input name="_token" type="hidden" value="{{Session::token()}}">
</div>
<div class="medium-4 columns">
<input value="Valider" class="button success hollow" type="submit">
</div>
</form>
</div>
</div>
@endsection
@section('scripts')
@endsection
4- الملف admins/login.blade.php
@extends('layouts.app')
@section('styles')
@endsection
@section('content')
<div class="row">
<div class="medium-offset-4 medium-11 columns">
<h4>Admin Login</h4>
<form action="{{route('admins.login')}}" method="post">
@foreach($errors->all() as $error)
<div class="alert-danger">{{$error}}</div><br>
@endforeach
@if(Session::get('fail'))
<div class="alert-danger">{{Session::get('fail')}}</div><br>
@endif
<hr>
<div class="medium-4 columns">
<label class="label info">Email</label>
<input name="email" type="text" placeholder="Votre Email">
</div>
<div class="medium-4 columns">
<label class="label info">Mot de passe</label>
<input name="password" type="password" placeholder="Votre Mot de passe">
<input name="_token" type="hidden" value="{{Session::token()}}">
</div>
<div class="medium-4 columns">
<input value="Valider" class="button success hollow" type="submit">
</div>
</form>
</div>
</div>
@endsection
@section('scripts')
@endsection
5- الملف admins/index.blade.php
دائما فالمجلد admins فيه زيد ملف جديد سميه index.blade.php هادا الملف لي فيه كيتعرضوا les admins لي عندنا ولي كيمكن الأدمن من حدف admin بل id ديالو ولي كيجيونا من ل fonction index لي كاينة ف AdminsController.php فكنخدم ب foreach باش كنعرضهم فالجدول مع الرابط وكاين أيضا الكود لي كيعرض رسائل الخطأ والنجاح الكود ديال الملف هو :
@extends('layouts.app')
@section('styles')
@endsection
@section('content')
<div class="container">
<div class="medium-12 columns">
@if(Session::get('fail'))
<div class="alert-danger">{{Session::get('fail')}}</div><br>
@endif
@if(Session::get('success'))
<div class="alert-success">{{Session::get('success')}}</div><br>
@endif
<h4>Admins</h4>
<hr>
<a class="hollow button primary" href="{{route('admins.create')}}">Ajouter</a>
<table class="stack">
<thead>
<tr>
<th width="200">Nom & Prénom</th>
<th width="200">Email</th>
<th width="200">Action</th>
</tr>
</thead>
<tbody>
@foreach($admins as $admin)
<tr>
<td>{{$admin->name}}</td>
<td>{{$admin->email}}</td>
<td>
<a class="hollow button warning" href="{{route('admins.delete',['id'=>$admin->id])}}">Supprimer</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@section('scripts')
@endsection