Data Provider
استفاده از Facade Data Provider
وظیفه این Facade ارائه دادههای در دسترس و مرتبسازی شده است. این Facade میتواند با مدلها، کلاسهای Enum و Eloquent Query Builder کار کند.
امکانات
| متد | شرح |
|---|---|
| source | میتوان با استفاده از متد source، منبع را مشخص کرد که میتواند یک مدل، یک enum، یا یک Eloquent Query Builder باشد. |
| onlyActives | برای دریافت دادههای active، میتوان از متد onlyActives استفاده کرد. در صورت وجود ستون is_active این متد به طور پیش فرض اعمال میشود. |
| ignoreActiveFilter | با فراخوانی این متد، اعمال خودکار فیلتر onlyActives متوقف شده و تمام رکوردها (شامل فعال و غیرفعال) بازگردانده میشوند. |
| withoutActives | برای دریافت دادههای غیر active، میتوان از متد withoutActives استفاده کرد. |
| onlyStatus | برای دریافت دادههای با یک وضعیت خاص که در ورودی داده می شود میتوان از متد onlyStatus استفاده کرد. |
| withoutStatus | برای دریافت دادههای مخالف با یک وضعیت خاص که در ورودی داده می شود میتوان از متد withoutStatus استفاده کرد. |
| sort | با فراخوانی متد sort، دادهها به صورت پیشفرض بر اساس ستون sort به صورت صعودی مرتب میشوند. در صورتی که ستون sort وجود نداشته باشد، مرتبسازی به ترتیب بر اساس ستون name و در صورت عدم وجود آن، بر اساس ستون title انجام خواهد شد. |
| latest | با فراخوانی متد latest، دادهها بر اساس ستون created_at به صورت نزولی مرتب میشوند. |
| available | با فراخوانی این متد، متدهای sort و onlyActives به طور خودکار اعمال میشوند. |
| add | با استفاده از این متد میتوان به دادههای موجود یک داده دیگر اضافه کرد. ورودی این متد میتواند object، یا id، یا آرایهای از id ها باشد. |
| get | و در نهایت با فراخوانی این متد میتوان دادههای نهایی را دریافت کرد. |
| formatSelectOptions | برای دریافت دادهها در قالب مناسب برای select input میتوان از این متد استفاده کرد. |
| formatComponentOptions | برای دریافت دادهها در قالب مناسب برای checkbox input و radio button input میتوان از این متد استفاده کرد. |
| moduleName | به کمک این متد میتوان نام ماژول را تنظیم کرد که از آن در ترجمه label استفاده میشود. |
| label | به کمک این متد میتوان مشخص کرد مقدار label از کدام ستون خوانده شود؛ به طور پیش فرض ستون name میباشد. |
| value | به کمک این متد میتوان مشخص کرد مقدار value از کدام ستون خوانده شود؛ به طور پیش فرض ستون id میباشد. |
| shouldEncryptValue | همچنین با فراخوانی این متد، idهای نمایش داده شده در خروجی رمزنگاری میشوند. |
نکته
قبل از استفاده از متدهای formatSelectOptions و formatComponentOptions، لازم است که تنظیمات اولیه توسط این متدها انجام شود. هر یک از این متدها نقشی خاص در تنظیم رفتار و نمایش اجزا دارند:
- moduleName
- label
- value
- shouldEncryptValue
مثال های استفاده
use Dornica\Foundation\DataProvider\Facades\DataProvider;
use Modules\Bank\Models\Bank;
use Dornica\Foundation\Core\Enums\IsLock;
// Example 1
DataProvider::source(Bank::query())
->withoutActives()
->get();
// Example 2
DataProvider::source(Bank::class)
->latest()
->get();
// Example 3
DataProvider::source(Bank::class)
->add([6,10])
->get();
// Example 4
DataProvider::source(Bank::class)
->latest()
->label('title')
->shouldEncryptValue()
->formatSelectOptions();
// Example 5
DataProvider::source(IsLock::class)
->formatComponentOptions();
// Example 6
DataProvider::source(Bank::query())
->onlyStatus(BankStatusEnum::ACTIVE)
->get();