Laravel’de veritabanına örnek içerik eklemek için factory ve seed sınıflarından yararlanılır. Öncelikle Factory kavramına değinelim.
Model Factory
Model Factory sınıfları oluşturulacak örnek veri için şablon belirtmiş olursunuz. Örnek bir factory oluşturma;
php artisan make:factory CompanyFactory -m Company //factory e direk modal ekler
database/factories dizinine factory dosyası oluşturulur. Bu dosyanın defination metoduna örnek içerik eklenir;
public function definition() { return [ 'name' => $this->faker->name, // Laravel faker paketini direk kullanıyor, bir işlem yapmanıza gerek yok 'email' => $this->faker->unique()->safeEmail, 'email_verified_at' => now(), 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'remember_token' => Str::random(10), ]; } Bu factory işlemini şu şekilde çalıştırabilirsiniz; use App\Models\Company; Company::factory()->count(50)->create(); // 50 tane örnek içerik üretir.
Seeding
Oluşturulan factory veya ekleyeceğiniz manuel başlangıç verilerini seed kullanarak yönetebilirsiniz. Seed başlangıç veritabanı verilerini ekler. Örnek bir seed dosyası oluşturalım.
php artisan make:seeder CompaniesTableSeeder
Dosya database/seeders dizininde yer alır. Aşağıdaki gibi düzenlenerek veri oluşturulur.
// CompaniesTableSeeder.php use Illuminate\Database\Seeder; use App\Company; class InternetsTableSeeder extends Seeder { public function run() { $count = 100; \App\Models\Company::factory($count)->create(); //count kaç tane istiyorsak } }
Bu seed dosyasını çalıştırıp verileri eklemek için;
php artisan db:seed php artisan db:seed --class=UserSeeder // belirli seed dosyası çalıştırma php artisan migrate:fresh --seed // veri tabanı yeniler ve örnek veriyi ekler.
Tinker kullanarak da factory çalıştırabilirsiniz;
\App\Models\Status::factory(5)->create();
İlk Yorumu Siz Yapın