sergeybruhin/seed-from-json

Laravel Seed from json Package

0.1.5 2025-01-09 01:28 UTC

This package is auto-updated.

Last update: 2025-02-09 01:37:43 UTC


README

Latest Version on Packagist Total Downloads

Trait to help you seed data from json files.

Installation

You can install the package via composer:

composer require sergeybruhin/seed-from-json

Usage Example

<?php

namespace Database\Seeders;

use App\Models\Feature;
use Illuminate\Database\Seeder;
use SergeyBruhin\SeedFromJson\Traits\SeedFromJson;

class FeaturesSeeder extends Seeder
{
    use SeedFromJson;

    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        /**
        * Default base directory database_path('data');
        * Default file name "data.json"
        * 'features' here is relative path to /database/data/features/data.json 
        */
        $this
            ->collectFromJson('features')
            ->each(function (array $entry) {
                $feature = Feature::where('name', $entry['name'])
                    ->first() ?? new Feature();

                $feature->name = $entry['name'];
                $feature->save();

                $this->logModel($feature);
            });
    }
}

Testing (Not yet 💁‍♂️)

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email sundaycreative@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.