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


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


1- إضافة PostsTableSeeder

فاول حاجة غادي نزيد seeder خاص ب table posts لي غادي تمكني باش نملئها بمعلومات فغادي تدخل ل cmd داخل ل projet وغادي تدير هاد ل comande :

php artisan make:seed PostsTableSeeder 

فسميناها PostsTableSeeder  فغادي تمشي ل dossier database منبعد seeds فيها غادي تلقى الملف تزاد ولي الكود ديالو هو هذا :

                                //

<?php

use Illuminate\Database\Seeder;

class PostsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}
                            

2- إضافة المعلومات الخاصة ب table posts

فباش نزيد المعلومات فقاعدة البيانات والجدول posts كنخدم بل classe DB لي كتمكني من اختيار الجدول posts وكنخدم ايضا ب faker لي هي مكتبة كتمكني من إضافة معلومات عشوائية فقاعدة البيانات منبعد كنخدم  بل boucle لي كتمكني باش نزيد 100 post فالكود لي زدنا ف PostsTableSeeder.php هو : 

                                //
<?php
use Illuminate\Database\Seeder;
use Faker\Factory as Faker;

class PostsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
        $faker = Faker::create();
        for($i = 1;$i <= 100;$i++){
            DB::table('posts')->insert([
                'title' => $faker->sentence(3),
                'body' => $faker->paragraph(3),
            ]);
        }
    }
}
                            

3- تنفيذ seeder

فباش seeder لي زدنا يتنفذ غادي نمشي للملف DatabaseSeeder  لي كاين فنفس dossier لي هو seeds وغادي نزيد ل classe PostsTableSeeder فل fonction run لي كتمكن من تنفذ كل seeders لي زدنا.

منبعد غادي تدير ل commande :

php artisan db:seed

فدبا غادي تمشي ل قاعدة البيانات فالجدول posts غادي تلقى 100 post تزادت.

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

                                //
<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
        $this->call(PostsTableSeeder::class);
    }
}