Export (خروجی دادهها)
یک ابزار قدرتمند برای مدیریت فرآیند خروجی گرفتن دادهها و استفاده از پیکربندیهای سفارشی است. استفاده صحیح از این قابلیت میتواند به شما در سادهسازی روند عملیات خروجی گرفتن کمک کند.
فرمتهای پشتیبانیشده:
excelhtmlcsvxmlpdf
ورودی میتواند کلاس BaseExport، یا دادهٔ درونحافظه از طریق Export::data() باشد.
ایجاد کلاس Export
php artisan dornica:make-export SalesExport
برای ماژول:
php artisan dornica:make-export SalesExport --module=MODULE_NAME
ساختار پایه کلاس Export
<?php
namespace App\Exports;
use App\Models\Sale;
use Dornica\Foundation\Export\BaseExport;
use Dornica\Foundation\Export\Builders\ExportField;
use Dornica\Foundation\Export\Builders\ExportFilter;
class SalesExport extends BaseExport
{
public function __construct()
{
parent::__construct();
$this
->setTitle('Sales Report')
->setFileFormat([FileFormat::HTML, FileFormat::EXCEL])
->setModel(Sale::class);
}
public function fields(): array
{
return [
// تعریف فیلدها
];
}
public function filters(): array
{
return [
// تعریف فیلترها
];
}
}
استفاده از Blade Layout Export
در صورتی که از Blade Layout استفاده میکنید، میتوانید فرم خروجی گرفتن دادهها را به راحتی در یک نما رندر کنید. این مورد برای پیادهسازی سفارشی در پروژه های پنل بسیار مفید است.
ثبت export در کنترلر
use Dornica\PanelKit\BladeLayout\Facade\BladeLayout;
use App\Exports\BookExport;
public function index()
{
BladeLayout::export(BookExport::class);
return view('books.form');
}
رندر Export در فایل Blade
<x-default-layout>
{!! bladeLayout()->export()->render() !!}
</x-default-layout>
Group By پویا در زمان اجرا
میتوانید group-by را روی builder ست کنید (معادل BaseExport::setGroupByField).
groupByField حالا میتواند:
- یک سطح
- مبتنی بر relation با dot-notation (مثل
customer.country.name)
باشد.