Laravel Nova package to export resources
This package adds and universal export action to your nova application.
Requirements
laravel/nova: ^3.0
gobrightspot/nova-detached-actions: ^1.1
optimistdigital/nova-multiselect-field: ^2.0
kpolicar/nova-date-range: dev-master
rap2hpoutre/fast-excel: ^2.5
Usage
To use the export action, you must add it to actions
method of your resource.
use Allanvb\NovaExports\ExportResourceAction;
public function actions(Request $request): array
{
return [
new ExportResourceAction($this),
];
}
Available methods
only(array $columns)
- Define whitelist of fields that can be exported.except(array $columns)
- Excludes the given fields from exporting list.filename(string $name)
- Sets the download filename.withUserSelection()
- Enables multi-select field that allow user to select the columns when exporting.usesDateRange(string $columnName)
- Enables field that allow user to select the range of dates when exporting. Default:created_at
usesGenerator()
- Enables cursor usage when getting data from database.queryBuilder(callable $query)
- Use own query on data exportation.disk(string $disk)
- The storage you want to use for storing export files.
withUserSelection
method cannot be used together with queryBuilder
method.
You are also able to use all of Nova Action methods, and all of Detached Actions methods on ExportResourceAction
.
Exceptions
The package can throw the following exceptions:
Exception | Reason |
---|---|
ColumnNotFoundException | Column does not exist in given table. |
EmptyDataException | No records to export. |
RangeColumnNotDateException | Given column for date range is not a date. |
To do
- Export single resource
- Implement user selection export
- Implement generator on exporting
- Add way to perform joins on export
- Add Eloquent relations export
- Add option to export to PDF
License
The MIT License (MIT). Please see License File for more information.