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

imadbelasri Laravel
LA

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


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


1- الملف RoomsController.php

من بعد كانزيد ل Controller ديال الصفحة الخاصة بالغرف فكنمشي ل app/Http/Controllers كنزيد ملف جديد كنسميه RoomsController.php لي غادي تكون فيه les fonctions لي كيمكنوا من إضافة تعديل مشاهدة وحدف غرفة وكيف كتشوف les fonctions خاويين المهمة ديالك هي تعمرهم وتزيد les views الكود ديال الملف هو :

                                                    
                                                        <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class RoomsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

                                                    
                                                

2- الملف Room.php

من بعد ف app كنزيد ملف كنسميه Room.php ولي عبارة عن model فيه fonction reservation لي كتدير la relation مابين الجدول rooms وreservations ولي كتقولنا بلي كل غرفة تابعة ل reservation الكود ديال الملف هو :

                                                        
                                                            <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Room extends Model
{
    //
    protected $fillable = ['status'];
    public function reservation(){
        return $this->belongsTo('App\Reservation');
    }
}

                                                        
                                                    

3- الملف ReservationsController.php

كنمشي ل app/Http/Controllers كنزيد ملف جديد كنسميه ReservationsController.php لي غادي تكون فيه fonction index لي كتسترجع les chambres لي عندنا فقاعدة البيانات وكترسلهم للملف book ديال reservations ولي غادي نزيدوه من بعد ثم كاين fonction store لي كتمكن من إضافة reservation فأولا  كنتحقق من أن الحقول مملوئين ثم كنسجل reservation جديدة فقاعدة البيانات وكنسترجع room لي تحجزت وكنعدل status ديالها كنردها كتساوي 0 يعني resérvée وكنوجه المستخدم  للصفحة الخاصة بالغرف مع رسالة نجاح الكود ديال الملف هو :

                                                        
                                                            <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Room;
use App\Reservation;
use Auth;
class ReservationsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $rooms = Room::all();
        return view('reservations.book',compact('rooms'));
    }
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
        $this->validate($request,[
            'dateFrom'=>'required|date',
            'dateTo'=>'required|date'
        ]);
        $room = Room::find($request->room_id);
        $reservation = new Reservation();
        $reservation->date_in = $request->dateFrom;
        $reservation->date_out = $request->dateTo;
        $reservation->client_id = Auth::user()->id;
        $reservation->room_id = $request->room_id;
        $reservation->save();
        $room->status = 0;
        $room->update();
        return redirect()->route('reservations.index')->with(['success'=>'Chambre resérvée']);
    }
}

                                                        
                                                    

4- الملف Reservation.php

من بعد ف app كنزيد ملف كنسميه Reservation.php ولي عبارة عن model فيه fonction client لي كتدير la relation مابين الجدول clients وreservations ولي كتقولنا بلي كل reservation خاصة بمستخدم معين وكاين fonction room لي كتدير la relation مابين الجدول room وreservations ولي كتقولنا بلي كل reservation خاصة بغرفة معينة الكود ديال الملف هو :

                                                        
                                                            <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Reservation extends Model
{
    //
    public function client(){
        return $this->belongsTo('App\Client');
    }
    public function room(){
        return $this->belongsTo('App\Room');
    }
}

                                                        
                                                    

5- الملف reservations/book.blade.php

فالمجلد views زيد مجلد جديد سميه reservations فيه زيد ملف جديد سميه book.blade.php هادا الملف لي فيه كيتعرضوا les chambres لي عندنا ولي كيمكن المستخدم من حجز غرفة ولي كيجيونا من ل fonction index لي كاينة ReservationsController.php فكنخدم ب foreach باش كنعرضهم فالجدول وكنتحقق واش الغرفة محجوزة ولا لا ب status ديالها ومنبعد يلا كان المستخدم مكونيكطي وكليكا على réserver كتعرض modal فيها فورم فيها تاريخ الحجز وتاريخ الإفراغ بالإضافة لل id ديال الغرفة ولي كيمشيو لل fonction store لي كاينة ف ReservationsController.php ولي كتمكن من إضافة حجز ويلا مكانش المستخدم مكونيكطي كيتوجه للملف الخاص بالكونيكسيون الكود ديال الملف هو :

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

@endsection

@section('content')
    <div class="row" style="padding:10px;">
        <div class="medium-12 columns">
            @if(Session::has('success'))
                <div class="alert-success">{{Session::get('success')}}</div>
            @endif
            <table class="stack">
                <thead>
                    <tr>
                    <th width="200">Chambre</th>
                    <th width="200">Disponibilité</th>
                    <th width="200">Action</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach($rooms as $room)
                    <tr>
                        <td>{{$room->name}}</td>
                        <td>
                            @if($room->status == 1)
                                <h7><div class="callout success">Disponible</div></h7>
                            @else
                                <h7><div class="callout warning">Resérvée</div></h7>
                            @endif
                        </td>
                        <td>
                        @if(isset(Auth::user()->id))
                            @if($room->status == 1)
                                <h7><a href="#" class="button success hollow" data-open="myModal{{$room->id}}">Resérver</a></h7>
                                <div id="myModal{{$room->id}}" class="reveal" data-reveal aria-labelledby="modalTitle" aria-hidden="true" role="dialog">
                                    <h2 id="modalTitle">Resérvation pour: <b>{{Auth::user()->name}}</b></h2>
                                    <form action="{{route('reservations.store')}}" method="post">
                                        <input type="hidden" name="_token" value="{{Session::token()}}">
                                        <input type="hidden" name="room_id" value="{{$room->id}}">
                                        <div class="medium-1  columns">De:</div>
                                        <div class="medium-2  columns"><input name="dateFrom" value="<?php echo date('Y-m-d');?>" type="date"/></div>
                                        <div class="medium-1  columns">A:</div>
                                        <div class="medium-2  columns"><input name="dateTo" value="<?php echo date('Y-m-d');?>" type="date"/></div>
                                        <div class="medium-2  columns"><input class="button" type="submit" value="Valider" /></div>
                                    </form>
                                    <button class="close-button" data-close aria-label="Close modal" type="button">
                                        <span aria-hidden="true">×</span>
                                    </button>
                                </div>
                            @else
                                <span class="label info">Sera disponible le : {{$reservation = App\Reservation::where('room_id',$room->id)->first()->date_out}}</span>
                            @endif
                        </td>
                        @else
                            @if($room->status == 1)
                              <h7><a href="{{route('clients.login')}}" class="button success hollow">Resérver</a></h7>
                            @endif
                        @endif
                    </tr>
                    @endforeach
                </tbody>
            </table>
        </div>
    </div>
@endsection

@section('scripts')

@endsection
    
                                                        
                                                    

دروس ذات صلة

LA

الجزء الأول  Laravel Authentification

Laravel هي وحدة من بزاف ديال php frameworks لي كاينين فالوقت الحاضر تخلقت ف 2011 بالرغم من أنها جديد...


LA

الجزء الثاني Laravel Authentification

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


LA

كيفاش نسجل نعدل ونمسح المعلومات من قاعدة البيانات

فهاد الدرس غادي نشوفو كيفاش يمكنا نسجلوا معلومات فقاعدة البيانات من نبعد نديروا عليها تعديلات وفالآخ...


LA

كيفاش نصاوب ألبوم صور بإستعمال Laravel الجزء الأول

فدرس اليوم غادي نشوفو كيفاش نديرو نصاوبو ألبوم صور بإستعمال Laravel غادي نزيدو صور فقاعدة البيانات م...


LA

كيفاش نصاوب ألبوم صور بإستعمال Laravel الجزء الثاني

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


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الأول

فهاد المشروع الجديد لي هو موقع تواصل إجتماعي بإستعمال laravel غادي نشوفو كيفاش نقادو موقع تواصل على...


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الثاني

فهاد الجزء الثاني من موقع تواصل إجتماعي بإستعمال laravel غادي نقادو الملفات لي كيمكنو المستخدم من...


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الثالت

فهاد الجزء الثالت من موقع تواصل إجتماعي بإستعمال laravel غادي نكملو الملفات الخاصة بإضافة وحدف أصد...


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الرابع

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


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الخامس

فهاد الجزء الخامس من موقع تواصل إجتماعي بإستعمال laravel غادي نكملو الملفات لي بقاونا ولي غادي يمكنو...