Download the PHP package usmanhalalit/laracsv without Composer
On this page you can find all versions of the php package usmanhalalit/laracsv. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download usmanhalalit/laracsv
More information about usmanhalalit/laracsv
Files in usmanhalalit/laracsv
Package laracsv
Short Description A Laravel package to easily generate CSV files from Eloquent model.
License MIT
Homepage https://github.com/usmanhalalit/laracsv
Informations about the package laracsv
LaraCSV
A Laravel package to easily generate CSV files from Eloquent model.
Basic usage
And a proper CSV file will be downloaded with email
and name
fields. As simple as it sounds!
Installation
Just run this on your terminal:
and you should be good to go.
Full Documentation
- Build CSV
- Output Options
- Download
- Custom Headers
- No Header
- Modify or Add Values
- Add fields and values
- Model Relationships
- Build by chunks
Build CSV
$exporter->build($modelCollection, $fields)
takes three parameters.
First one is the model (collection of models), seconds one takes the field names
you want to export, third one is config, which is optional.
Output Options
Download
To get file downloaded to the browser:
You can provide a filename if you wish:
If no filename is given a filename with date-time will be generated.
Advanced Outputs
LaraCSV uses League CSV. You can do what League CSV is able to do. You can get the underlying League CSV writer and reader instance by calling:
And then you can do several things like:
For more information please check League CSV documentation.
Custom Headers
Above code example will generate a CSV with headers email, name, created_at and corresponding rows after.
If you want to change the header with a custom label just pass it as array value:
Now name
column will show the header Full Name
but it will still take
values from name
field of the model.
No Header
You can also suppress the CSV header:
Modify or Add Values
There is a hook which is triggered before processing a database row. For example, if you want to change the date format you can do so.
Note: If a beforeEach
callback returns false
then the entire row will be
excluded from the CSV. It can come handy to filter some rows.
Add fields and values
You may also add fields that don't exists in a database table add values on the fly:
Model Relationships
You can also add fields in the CSV from related database tables, given the model has relationships defined.
This will get the product title and the related category's title (one to one):
You may also tinker relation things as you wish with hooks:
Build by chunks
For larger datasets, which can become more memory consuming, a builder instance can be used to process the results in chunks. Similar to the row-related hook, a chunk-related hook can be used in this case for e.g. eager loading or similar chunk based operations. The behaviour between both hooks is similar; it gets called before each chunk and has the entire collection as an argument. In case false
is returned the entire chunk gets skipped and the code continues with the next one.
The default chunk size is set to 1000 results but can be altered by passing a different value in the $config
passed to buildFromBuilder
. Example alters the chunk size to 500.
© Muhammad Usman. Licensed under MIT license.