آموزش Laravel

Factory در لاراول

آموزش استفاده از factory در لاراول

Factory در لاراول، در این مطلب کار با Factory ها که یکی از ویژگی های مهم در فریم ورک لاراول می باشد را یاد خواهیم گرفت.

کاربرد Factory در لاراول

کاربرد Factories در لاراول

 

قبل از اینکه بریم سراغ نحوه استفاده از factory ها  اجازه بدید یک تعریف از آن داشته باشیم.

 

Factory در لاراول چیست؟

ما با استفاده از Factory ها می توانیم به تعداد دلخواه داده ها یا رکوردهای فیک بسازیم و در در جداول پایگاه داده درج کنیم.

این کار دقیقا شبیه کاری هست که seeder ها انجام می دهند با این تفاوت که در seeder ما باید برای درج هر رکورد اطلاعات آن را بنویسیم اما در Factory این کار رو به شکل کاملا اتوماتیک انجام میدیم. اگر با seeder آسنا نیستید می توانید مقاله “مفهوم seeder در لاراول” را مطالعه بفرمایید.

 

Factory ها چگونه کار می کنند؟

کارخانه یا Factory دارای یک سری متد هست که به واسطه آنها داده های فیک تصادفی تولید می کند و در فیلدهایی که ما مشخص می کنیم آنها رو درج می کند.

بریم مثال ببینیم که کامل متوجه شیم…

 

آموزش استفاده از Factories در لاراول

فرض کنید من یک جدول به نام “post” دارم که شامل فیلدهای تصویر زیر هست.

use factory in laravel

use factory in laravel

 

حالا می خوام از طریق Factory داده های فیک در آن ایجاد کنم.

برای اینکار از دستور زیر استفاده می کنم. 

				
					php artisan make:factory PostFactory
				
			

factory ها در مسیر زیر قرار دارند:

database -> factories -> UserFactory.php

فایل یا Factory که ایجاد کردیم رو باز می کنیم و با استفادهاز متدهای آن اطلاعات فیک رو فیلدهای جداول بر اساس ستون های آن تولید می کنیم.

				
					<?php

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;

/**
 * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Post>
 */
class PostFactory extends Factory
{
    /**
     * Define the model's default state.
     *
     * @return array<string, mixed>
     */
    public function definition()
    {
        return [
            'title' => $this->faker->unique()->sentence(),
            'excerpt' => $this->faker->realText($maxNbChars = 50),
            'body' => $this->faker->text(),
            'image_path' => $this->faker->imageUrl(640, 480),
            'is_published' => 1,
            'min_to_read' => $this->faker->numberBetween(1, 10)
        ];
    }
}

				
			

ما هر زمان که بخواهیم با دیتابیس کار کنیم نیاز به “model” داریم و این یک قانون هست. پس برای جدول دیتابیس post یک modal به صورت زیر ایجاد می کنم.

model ها در مسیر زیر قرار دارند.

app -> Models

در این مرحله برای معرفی و اجرای Factory وارد فایل “DatabaseSeeder.php” میشیم و کدهای آن رو به شکل زیر تغییر میدیم.

				
					<?php

namespace Database\Seeders;

// use Illuminate\Database\Console\Seeds\WithoutModelEvents;

use App\Models\Post;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        Post::factory(100)->create();
    }
}

				
			

در نهایت وارد ترمینال ادیتور یا CMD میشم و با استفاده از دستور زیر Factory خودم رو اجرا می کنم.

				
					php artisan db:seed
				
			

نتجه رو ببینیم:

مثالی از آموزش استفاده از Factories در لاراول

مثالی از آموزش استفاده از Factories در لاراول

 

ما می تونیم به شکل زیر اطلاعات یک فیلد خاص رو هم به دلخواه تغییر بدیم.

				
					 public function run()
    {
        Post::factory(100)->create([
            'body' => 'This is Overriding the body post'
        ]);
    }
				
			

 

جمع بندی

در این مقاله کوتاه سعی کردم نحوه ایجاد Factory ها و همچنین استفاده از آنها در لاراول رو توضیح بدم. امیدوارم این مطلب براتون مفید واقع شده باشه.

لطفا اگر نظر و پیشنهادی در خصوص مطالب و پیشبرد آنها دارید خوشحال میشم در قسمت دیدگاه ها مطرح بفرمایید.

 

آموزش های طراحی و برنامه نویسی وب

سایت رسمی لاراول

کاربرد HTML

 jQuery

جاوا اسکریپت در 1 ساعت

کاربرد CSS

آموزش ReactJS

صفر تا صد PHP

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *