پرش به مطلب اصلی

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();