Application de gestion d'un hôtel ب laravel 5.5 الجزء الرابع


فهاد الجزء الرابع من Application de gestion d'un hôtel ب laravel 5.5 غادي نشوفو الجزء لي غادي يمكن المستخدم من أنه يرسلنا رسائل فغادي نزيدو الملف لي غادي يمكن إرسال رسالة بالإضافة للملف لي غادي يتعرضوا فيه الرسائل لي توصل بها الموقع ولي غادي يمكن للأدمن مشهادتها وحدفها بالإضافة للملف لي غادي يكون la base ديال كل الملفات لي عندنا ولي غادي يكونوا فيه ملفات css و js. 

نظرة سريعة بالفيديو

1- الملف Contact.php

 فالمجلد app كنزيد ملف كنسميه Contact.php ولي عبارة عن model فيه les champs لي غادي يمكنا نديرو عليهم التعديل والحدف الكود ديال الملف هو :

                                <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Contact extends Model
{
    //
    protected $fillable = ['name','email','message'];
}

                            

2- الملف ContactsController.php

كنمشي ل app/Http/Controllers كنزيد ملف جديد كنسميه ContactsController.php لي غادي تكون فيه ل fonction index لي كتسترجع les messages لي عندنا فقاعدة البيانات وكترسلهم للملف index ديال contacts ولي غادي نزيدوه من بعد ثم كاين ل fonction create لي كتوجه المستخدم للملف الخاص بإرسال رسالة ولي غادي نزيدوه من بعد ثم كاين fonction store لي كتمكن من إضافة message فأولا  كنتحقق من أن الحقول مملوئين ثم كنسجل message جديد فقاعدة البيانات ثم كاين fonction destroy لي كتمسح message منبعد مكتسترجعوا بل id ديالو الكود ديال الملف هو :

                                <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Contact;
class ContactsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $contacts = Contact::all();
        return view('contacts.index',compact('contacts'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        return view('contacts.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',
            'email' => 'required',
            'message' => 'required|max:1000'
        ]); 
        $contact = new Contact();
        $contact->name = $request->name;
        $contact->email = $request->email;
        $contact->message = $request->message;
        $contact->save();
        return redirect()->route('contacts.create')->with(['success'=>'Message envoyé avec succés']);
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
        $contact = Contact::findOrFail($id);
        $contact->delete();
        return redirect()->route('contacts.index')->with(['success'=>'Message supprimé avec succés']);
    }
}

                            

3- الملف contacts/create.blade.php

فالمجلد views زيد مجلد جديد سميه contacts فيه زيد ملف جديد سميه create.blade.php هادا الملف لي فيه الفورم لي كتمكن المستخدم من إرسال رسالة للموقع فمنبعد مكيدخل المعلومات ديالو فالحقول هاد المعلومات كتمشي لل fonction store لي كاينة ContactsController.php وكاين أيضا الكود لي كيعرض رسائل الخطأ يلا كان شي حقل فارغ ورسالة النجاح يلا مشا message الكود ديال الملف هو :

                                @extends('layouts.app')
@section('styles')

@endsection

@section('content')
    <div class="row">
        <div class="medium-offset-4 medium-11 columns">
            <h4>Nous Contacter</h4>
                <form action="{{route('contacts.store')}}" 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
                    @if(Session::get('success'))
                        <div class="alert-success">{{Session::get('success')}}</div><br>
                    @endif
                    <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">Message</label>
                        <textarea name="message" cols="30" rows="5" placeholder="Votre Message"></textarea>
                        <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- الملف contacts/index.blade.php

فالمجلد contacts فيه زيد ملف جديد سميه index.blade.php هادا الملف لي فيه كيتعرضوا les messages لي عندنا ولي  كيجيونا من ل fonction index لي كاينة فالملف ContactsController.php فكنخدم ب foreach باش كنعرضهم فالجدول مع الروابط لي كتمكن من حدف أو مشاهدة message الكود ديال الملف هو :

                                    @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>Contacts Messages</h4>
        <hr>
        <table class="stack">
          <thead>
            <tr>
              <th width="200">Nom & Prénom</th>
              <th width="200">Email</th>
              <th width="200">Message</th>
              <th width="200">Action</th>
            </tr>
          </thead>
          <tbody>
            @foreach($contacts as $contact)
              <tr>
                <td>{{$contact->name}}</td>
                <td>{{$contact->email}}</td>
                <td>{{str_limit($contact->message)}}</td>
                <td>
                    <a class="hollow button warning" href="{{route('contacts.delete',['id'=>$contact->id])}}">Supprimer</a>
                    <a class="hollow button info" href="#" data-open="myModal{{$contact->id}}">Voir</a>
                    <div id="myModal{{$contact->id}}" class="reveal" data-reveal aria-labelledby="modalTitle" aria-hidden="true" role="dialog">
                        <h2 id="modalTitle">Message de : <b>{{$contact->email}}</b></h2>
                        <p class="lead">{{$contact->message}}</p>
                        <button class="close-button" data-close aria-label="Close modal" type="button">
                            <span aria-hidden="true">×</span>
                        </button>
                    </div>
                </td>
              </tr>
            @endforeach
            </tbody>
        </table>
        </div>
    </div>
@endsection

@section('scripts')

@endsection
                                

5- الملف layouts/app.blade.php

فالمجلد views زيد مجلد جديد سميه layouts فيه زيد ملف جديد سميه app.blade.php هادا الملف لي هو la base ديال الملفات كاملين ولي كي hériter منو كل الملفات لي ف views  فيه روابط لملفات ال css وjs لي خدمنا بهم فهنا خدمت ب foundation لي هي framework بحال bootstrap فكنزيد الروابط وكندير include لل header ول footer ولي غادي نزيدوهم من بعد  الكود ديال الملف هو :

                                    <!doctype html>
<html class="no-js" lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Gestion Hotel</title>
    <link rel="stylesheet" href="{{URL::to('css/foundation.min.css')}}"/>
    <link rel="stylesheet" href="{{URL::to('css/style.css')}}"/>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"/>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/motion-ui/1.1.1/motion-ui.min.css"/>
    @yield('styles')
  </head>
  <body>
    @include('includes.header')
    <br>
    @yield('content')
    <br>
    @include('includes.footer')
    <script src="{{URL::to('js/jquery.js')}}"></script>
    <script src="{{URL::to('js/what-input.js')}}"></script>
    <script src="{{URL::to('js/foundation.min.js')}}"></script>
    <script>
      $(document).foundation();
    </script>
    @yield('scripts')
  </body>
</html>
                                


بحث في الموقع


إشترك للتوصل بالجديد