The Laravel Model JSON package allows you to export data from a specific model in the form of a JSON file. It is based on the php artisan
command and is easy to use.
To install this package, use the following command:
composer require vildanbina/laravel-model-json
The command to export data from a model is php artisan model:export {model}
, where {model}
is the class name of the model you wish to export. After running this command, the data will be automatically saved in the storage/app
folder.
For example, to export data from the User
model, you would run the following command:
php artisan model:export User
If your model is located in a different folder, you can specify the exact location, like so:
php artisan model:export App\Models\User
This package also has several options that allow you to customize the export functionality. For example, you can use the --path=public
option to save the JSON data in a different folder. Here's an example:
php artisan model:export User --path=public
By default, the filename of the JSON data is "Model-Timestamp", but you can also specify a custom filename using the --filename=data
option. For example:
php artisan model:export User --filename=data
You can also exclude certain columns from the export by using the --except-fields
option. This is useful if you only want to export certain data from the model. For example:
php artisan model:export User --except-fields=id,deleted_at
To exclude the created_at
, updated_at
, and deleted_at
columns from the export, use the --without-timestamps
option. For example:
php artisan model:export User --without-timestamps
If a model has a large number of columns and you only want to export a subset of them, you can use the --only-fields
option. This allows you to specify which columns you want to include in the export. For example:
php artisan model:export User --only-fields=name,email
You can now export models along with their specified relationships using the new option --with-relationships={relations}
. {relations}
are the names of the relationships and can be separated by +
symbol if you want to attach more than one relationship.
For example, if you want to export a Product model along with its Category relationship, you can use the command:
php artisan model:export Product --with-relationships=category
If you want to export a Product model along with both its Category and Supplier relationships, you can use the command:
php artisan model:export Product --with-relationships=category+supplier
Additionally, you can choose to only export specific columns of the relationship by using the syntax {relationship_name}:{columns_to_export}
.
For example, if you want to export a Product
model along with its Category
relationship and only export the id
and name
columns of the Category
, you can use the command:
php artisan model:export Product --with-relationships=category:id,name
If you want to save JSON in a file as a beautified version, you can use the --beautify
option or its shorthand -b
. For example:
php artisan model:export User --beautify
#or
php artisan model:export User -b
By default, it will be exported to an inline JSON.
The model:import
command allows you to import data from a JSON file and store it in your database.
For example, to import data for the User
model, you would run the following command:
model
: Required. The name of the model to be imported.path
: Required. The path to the JSON file, which must contain valid JSON data.
Example:
php artisan model:import User public/Users.json
This command will store all the data found in the JSON file in the database.
You can exclude specific columns by using the --except-fields
option, separated by commas, ex:
php artisan model:import User public/Users.json --except-fields=email_verified_at
You can also exclude timestamps by using the --without-timestamps
option.
If you only want to store specific fields, you can use the --only-fields
option, separated by commas. Ex:
php artisan model:import User public/Users.json --only-fields=first_name,last_name,email
You can update existing records in the database instead of creating duplicates by using the --update-when-exists
option, ex:
php artisan model:import User public/Users.json --update-when-exists
If you want to group the updates based on a different column, you can use the --update-keys option
. The records will be updated based on the matching existing records.
php artisan model:import User public/Users.json --update-when-exists --update-keys=email
Note: The --update-when-exists
option must be present in order for the update feature to be enabled.
The Laravel Model JSON package is a useful tool for exporting data from a specific model in a JSON format. It offers various options to customize the export process and make it more convenient for your needs. Give it a try and see how it can help you in your project.
Please see CONTRIBUTING for details.
Please e-mail [email protected] to report any security vulnerabilities instead of the issue tracker.
The MIT License (MIT). Please see License File for more information.