پکیج محرومیت مدل لاراول – Laravel Exclusions

پکیج Exclusions لاراول برای حذف مدل ها از درخواست های الکوئنت (Eloquent) استفاده میشه. با استفاده از این پکیج شما میتونید زیر مجموعه‌ای از مدل ها رو علامت بزنید. این مدل های علامت گذاری شده رو موقع کوئری گرفتن از یک مدل یا کالکشن (collection) جداگانه، میشه از نتیجه حذف کرد:

use App\Models\Article;

$article = Article::query()->findOrFail(1)

$article->addToExclusion();

$article->excluded(); // returns true

// Throws NotFoundHttpException after exclusion
Article::findOrFail(1);

مشابه قابلیتی که خود لاراول برای حذف نرم (soft deletes) مدل داخل خودش داره، با این پکیج میتونید مدل هارو “محروم (excluded)” کنید و با استفاده از امکانات زیر به اون بخش محروم شده دسترسی داشته باشید:

Article::withExcluded()->get();

// Or only return excluded models
Article::onlyExcluded()->get();

با استفاده از دستور زیر میتونید این پکیج رو با استفاده از کامپوزر روی لاراولتون نصب کنید:

composer require h-farm/laravel-excludable

بعد از نصب نیازه که فایل های دیتابیس این پکیج از وندور (vendor) پابلیش (publish) بشه. با استفاده از دستور زیر میتونید پابلیش رو انجام بدید:

php artisan vendor:publish --provider="HFarm\Excludable\ExcludableServiceProvider" --tag="excludable-migrations"

حالا نیازه که با استفاده از آرتیسان (artisan) فایل های دیتابیس اضافه شده رو مایگریت (migrate) کنید تا داخل دیتابیس ساخته بشن:

php artisan migrate

همچنین میتونید فایل کانفیگ این پکیج رو از وندور پابلیش کنید:

php artisan vendor:publish --provider="HFarm\Excludable\ExcludableServiceProvider" --tag="excludable-config"

در زیر مثالی برای پیکربندی پکیج Exclusions آورده شده که قابلیت محروم سازی رو به مدل الکوئنت اضافه میکنه:

<?php

namespace App\Models;

use HFarm\Excludable\Excludable;

class Article extends Model
{
    use Excludable;

    protected $fillable = [
        'title',
        'body',
    ];
}

 

شما میتونید درباره مراحل نصب، کارایی و استفاده این پکیج اطلاعات بیشتری در صفحه گیت هاب اون کسب کنید.

اگه تجربه استفاده از این پکیج رو دارید، خوشحال میشم توی بخش نظرات این پست به اشتراک بزارید.

منبع : laravel-news.com

مطالب مرتبط پیشنهادی
نظر خود را ارسال کنید

آدرس ایمیل شما منتشر نخواهد شد.

*

code