Skip to content

Latest commit

 

History

History
141 lines (108 loc) · 5.35 KB

Readme_fa-FA.md

File metadata and controls

141 lines (108 loc) · 5.35 KB

جستجوی مدل لاراول

Build Status codecov StyleCI Total Downloads Latest Stable Version Latest Unstable Version License Homepage

Laravel Model Search یک پکیج سبک و با کاربرد آسان است تا بتوانید پرس و جوهای جستجوی پویا را برای مدلهای خاص با Laravel یا Illuminate 5.8 ایجاد کنید.

ابزار های وابسته

  • لاراول 5.7+

نصب کردن

کامپوزر

دستور کامپوزر `composer require skyraptor/modelsearch` را برای نصب ساده اجرا کنید تا آخرین نسخه موجود نصب شود و سپس برای بروزرسانی دستور زیر را اجرا کنید.

composer update

این بسته با استفاده از ServiceProvider بسته Laravels ، ServiceProvider خود را ثبت می کند.

تنظیم و کانفیگ

این بسته شامل پرونده پیکربندی خود می باشد که شما باید با دستور `php artisan vendor:publish` و دنبال کردن نمونه های موجود در screenafterward. در فایل پیکربندی باید فضای نام را برای فهرست فیلترها و پیشوند فیلتر درخواست خود تنظیم کنید.

return [
    'filtersFQCN' => 'App\\Filters\\',
    'requestFilterPrefix' => 'filter_'
];

فیلتر ها

برای تعریف یک فیلتر ، باید پوشه ای را ایجاد کنید که به عنوان مدل خود در فهرست پوشه فیلترهای شما قرار گیرد. در این پوشه می توانید پوشه مخصوص مدل را ایجاد کنید. مثلا:

مثلا:

فیلتر شما باید مدل ModelSearch \ Contracts \ Filter را گسترش دهد.

path\to\laravel\app\Filters\User\HasId.php

 <?php

namespace App\Filters\User;

use ModelSearch\Contracts\Filter;
use Illuminate\Database\Eloquent\Builder;


class HasId implements Filter
{
    /**
     * Apply a given search value to the builder instance.
     *
     * @param Builder $builder
     * @param integer $value
     * @return Builder $builder
     */
    public static function apply(Builder $builder, $value)
    {
        return $builder->where( 'id', $value );
    }
}

درخواست فیلتر

درخواست پیشوند فیلتر در پیکربندی پیشوند مورد استفاده برای نام فیلترها را در پارامترهای درخواست تعریف می کند. این می تواند مورد استفاده قرار گیرد تا به کاربر اجازه دهد فیلترهای درخواست POST و GET را اعمال کند. این کار باید با فراخوانی روش 'addRequestFilters' و ارائه نمونه درخواست (Request) انجام شود.

همیشه به یاد داشته باشید که فیلترها را به ترتیب مناسب اعمال کنید.

 $search = new ModelSearch( User::class );
 $search->addRequestFilters( $request );
 $result = $search->result();

می توانید پیشوند فیلتر جستجو را با فراخوانی متد `setRequestFilterPrefix()`تغییر دهید و یک پیشوند جدید ارائه دهید.

مثال ها

مثال زیر نحوه استفاده از جستجو در Controller را به شما نشان می دهد:

namespace ModelSearch\ModelSearch;


public function someController( Request $request ) {
    ...

    $search = new ModelSearch( User::class );
    $search->addFilters([
        'HasId' => 1,
        'HasLastName' => 'Doe'
    ]);
    $search->addFilter('SomeFilter', 'value');
    $result = $search->result();

    // The search can be extended after processing results
    $search->addFilter('AnotherFilter', 'value');
    $result2 = $search->result();

    ...
}