Application de gestion des événements ب laravel 6 & fullcalendarjs الجزء الأول


فهاد ل projet الجديد ولي سبق ودرناه فالقناة فاليوتيوب غادي نشوفوا كيفاش نقادو une application de gestion des événements ب laravel 6 و fullcalendar js.

ل projet كيمكن باش نزيد نعدل ونحذف des événements ولي غادي يكونوا عندي معروضين فل calendrier.

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


1- إضافة قاعدة البيانات


أول حاجة زيد projet بل commande laravel new وسميه لي بغيتي من بعد غادي تزيد Model سميه Event

غادي تدير ل commande :

php artisan make:model Event -a باش يزيد كلشي model و controller و migration.

منبعد زيد قاعدة بيانات سميها  لي بغيتي انا سميتها events فيها غادي نزيدو table events.

بالنسبة ل migration ديال table events الكود لي غادي يكون فيها هو :

                                    
                                        <?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateEventsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('events', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('title');
            $table->date('start_date');
            $table->date('end_date');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('events');
    }
}
                                    
                                

2- إضافة معلومات عشوائية فقاعدة البيانات


دبا غادي نزيدو les tables ديالنا بل commande :

php artisan migrate 

منبعد غادي نزيدو معلومات عشوائية ف table events لي زدنا.

غادي نزيدو seeder بل commande :

php artisan make:seeder EventSeeder 

منبعد ما يتزاد ف dossier database/seeds غادي نزيدو فيه الكود لي فيه array ديال ل events ولي غادي نخدم بل boucle باش نزيدهم ف table events بإستعمال ل Model Event.


الكود ديال الملف هو :



                                    
                                        <?php

use Illuminate\Database\Seeder;
USE App\Event;

class EventSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
        $data = [
        	['title'=>'Demo Event-1', 'start_date'=>'2020-01-11', 'end_date'=>'2020-01-12'],
        	['title'=>'Demo Event-2', 'start_date'=>'2020-02-11', 'end_date'=>'2020-02-13'],
        	['title'=>'Demo Event-3', 'start_date'=>'2020-01-14', 'end_date'=>'2020-01-14'],
        	['title'=>'Demo Event-3', 'start_date'=>'2020-02-17', 'end_date'=>'2020-02-17'],
        ];
        foreach ($data as $key => $value) {
        	Event::create($value);
        }
    }
}
                                    
                                

3- تعديل الملف Event.php


من بعد غادي نديرو تعديل على ل model Event كنزيد les champs فل array fillable باش نتفادى ل mass assignment error وكنزيد fonction لي كنحدد فيها بلي غادي نقلب على ل event ب title ماشي ل id.

الكود ديال الملف هو :

                                      
                                        <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Event extends Model
{
    //
    protected $fillable = ['title','start_date','end_date'];

    public function getRouteKeyName(){
        return 'title';
    }

}
                                      
                                    

4- إضافة معلومات عشوائية فقاعدة البيانات تتمة


من بعد غادي نمشي للملف DatabaseSeeder لي كاين ف dossier database/seeds وغادي نزيد الكود ديال تنفيذ ل EventSeeder  لي زدنا من بعد ماتزيد الكود غادي تدير ل commande :

php artisan db:seed 

دبا يلا مشيتي لقاعدة البيانات غادي تلقى المعلومات تزادو ف table events.

الكود ديال الملف هو :

                                        
                                            <?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call(EventSeeder::class);
    }
}
                                        
                                    

كلمات مفاتيح :