چطور با استفاده از Seeder و Factory و Faker، در لاراول دیتای Fake ایجاد کنیم؟
احسان

نویسنده

  • 1400/4/8
  • 0
  • 88
3 سال پیش| برنامه‌نویسی وب

چطور با استفاده از Seeder و Factory و Faker، در لاراول دیتای Fake ایجاد کنیم؟

چطور با استفاده از Seeder و Factory و Faker، در لاراول دیتای Fake ایجاد کنیم؟

برای صرفه‌جویی در زمان و سرعت بخشیدن به کارمان می‌توانیم با استفاده از Faker و Factory اقدام به ایجاد و ورود داده‌های Fake و انبوه در دیتابیس خود کنیم که در زیر مراحل آن را به صورت ساده و به دور از هر پیچیدگی و توضیحات اضافه ذکر می‌کنم.

سناریو: قصد دارم برای کاربر با آیدی 1 خود نوشته‌های متعددی در دیتابیس و جدول posts ایجاد کنم.

1- ایجاد Seeder

ابتدا با دستور زیر یک seeder برای post ایجاد می‌کنم:


php artisan make:seeder PostSeeder

سپس متد زیر را در آن اضافه می‌کنم که اعلام می‌کند که 50 بار factory را که جلوتر ایجاد خواهیم کرد، اجرا کن.


public function run()
{
	Post::factory()
			->count(50)
			//->hasPosts(1) //این مورد که کامنت شده برای موارد شخصی‌تر است
			->create();
}

2- ایجاد Factory

حال نیاز است که یک فکتوری ایجاد کنم:

php artisan make:factory PostFactory

در فکتوری مورد نظر نیز مشخص می‌کنیم که دیتای مورد نظرمان در جدول مربوطه که posts است، به چه صورت وارد شود و من مشخص کرده‌ام که این اطلاعات برای کاربر با id شماره 1 وارد شوند که شما بسته به نیاز و دیتابیس و جدولتان می‌توانید موارد دلخواه خود را وارد کنید و مواردی که من وارد کرده‌ام صرفاً به صورت sampleاند و پیشنهاد می‌کنم برای استفاده از حداکثر کارایی faker نگاهی به وبسایت زیر داشته باشید که اطلاعاتی خوبی در اختیارتان قرار خواهند داد:

https://github.com/fzaninotto/Faker/blob/master/readme.md

public function definition()
{
	return [
		'user_id' => '1',
		'title' => Str::random(10),
		'slug' => Str::random(10),
		'summary' => $this->faker->paragraph,
		'content' => $this->faker->paragraph,
		'password' => 'password',
		'slider' => '0',
		'status' => '1',
		'display' => '1',
		'views' => $this->faker->biasedNumberBetween($min = 1, $max = 500, $function = 'sqrt'),
		'feature_image' => 'feature_image',
		'image_2' => 'image_2',
		'image_3' => 'image_3',
	];
}

3- در DatabaseSeeder.php که موجود است، Seederهای مورد نظرمان را مشخص می‌کنیم. در اینجا من PostSeeder را اضافه می‌کنم.

public function run()
{
	// \App\Models\User::factory(10)->create();
		$this->call(UserSeeder::class);
		$this->call(PostSeeder::class);
}

4- در نهایت با دستور زیر، فکتوری ما run خواهد شد و اقدام به ایجاد داده‌های Fake مورد نظرمان خواهد کرد.

php artisan db:seed

 

 

به‌روز رسانی: 1403/7/22
توی وبسایتم سعی می‌کنم محتوایی که تصور کنم ارزشمنده و به بقیه کمکی می‌کنه رو منتشر کنم. امیدوارم از مطالب وبسایت بتونید استفاده کنید و به کارتون بیاد. در ضمن اگه پروژه‌ی تحت وبی دارید که نیاز به برنامه‌نویسی و اجرا داره، می‌تونید با شماره انتهای صفحه با من تماس بگیرید تا در موردش با هم صحبت کنیم.
برچسب‌ها:


دیدگاه کاربران

ثبت دیدگاه

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند*