وبلاگ

آموزش متد filter کالکشن در لاراول به همراه مثال


رقیه اباذری رقیه اباذری

قبل از شروع معرفی متد فیلتر، بهتر است بدانیم کالکشن چیست؟ کلاس Illuminate\Support\Collection در لاراول یک wrapper است. این wrapper کار با داده‌هایی که از نوع آرایه هستند را برای ما فراهم کرده است. در کالکشن چند متد از جمله متد all()، Chunk()، Collapse و .... داریم. در این مقاله منحصرا متد filter کالکشن را با هم بررسی می کنیم. با ما همراه باشید.

متد filter کالکشن، همانطور که از نام آن پیداست، کار فیلتر را انجام می دهد. اما خب به چه صورت؟!

متد filter کالکشن در لاراول

این متد آیتم های یک مجموعه را با شرط مشخص شده در فانکشن callback فیلتر می‌کند. خروجی متد به صورت آرایه است. بعد از اعمال فیلتر، موارد دارای شرط فیلتر، نگه داشته می‌شوند. پس در خروجی آرایه‌ای از آیتم‌های منطبق با شرط را داریم.

 

همانطور که بالاتر اشاره کردیم، متد filter کالکشن در کلاس Illuminate\Support\Collection است. به متد زیر توجه کنید.

public function filter(callable $callback = null)
{
     if ($callback) {
         return new static(Arr::where($this->items, $callback));
     }

     return new static(array_filter($this->items));
}

فانکشن filter، یک callback را به عنوان آرگومنت می‌گیرد و فیلتر را روی هر مورد اجرا می‌کند. اگر نتیجه تست برای یک مورد خاص منفی بود، آن را از مجموعه خارج می‌کند.

 

خب برویم سراغ یک مثال عملی

متد filter کالکشن در لاراول را در مسیر routes >> web.php تست و پیاده سازی می‌کنیم. کدهای زیر را در پوشه web.php بنویسید.

<?php

// web.php

Route::get('/', function () {
    $collection = collect([19, 21, 29, 46]);

    $filtered = $collection->filter(function ($value, $key) {
        return $value > 21;
    });

    dd($filtered->all());
});

شرطی که در این متد بررسی می شود 21> است. اگر آیتمی پیدا شد که شرط را داشت، آن را در یک آرایه جدید می گذارد.

اکنون، با وارد کردن دستور زیر در root پروژه، سرور Laravel را شروع کنید.

php artisan serve

 

با وارد کردن آی پی http://localhost:8000 در مرورگر، خروجی زیر را خواهید دید:

فیلتر کالکشن لاراول با مثال

خروجی به این معناست که آرایه ای با تمام آیتم هایی که شرط 21 > را داشتند، برای ما لیست شده است. مسلما موارد باقیمانده هم از کالکشن حذف می شوند.

در صورت عدم انطباق با شرط callback، تمام داده های مجموعه که برابر با false هستند، حذف می شوند.

<?php

// web.php

Route::get('/', function () {
    $collection = collect([0, 1, 2, 3, 4, 5]);

    $filtered = $collection->filter();

    dd($filtered->all());
});

در کد بالا، ورودی 0 حذف شده است. دلیل این است که 0 به عنوان یک متغیر boolean که false است در نظر گرفته شده است. خروجی به شکل زیر خواهد بود.

متد فیلتر در لاراول


برچسب‌ها: لاراول

رقیه اباذری
رقیه اباذری

مطالب مرتبط


آموزش متد search کالکشن لاراول به همراه مثال

از متد سرچ برای جستجو کردن یک مقدار در یک کالکشن استفاده می‌شود. اگر مقدار در مجموعه وجود داشته باشد، کلید مقدار را ریترن می‌کند. اگر مقدار با هیچ آیتمی مطابقت نداشته باشد، false برگردانده می‌شود.

ولیدیشن در لاراول 7 به همراه مثال

لاراول روش‌های مختلفی برای اعتبارسنجی داده‌های اپلیکیشن فراهم کرده است.

آموزش ساخت سایت چندزبانه با استفاده از قابلیت محلی سازی در لاراول

قابلیت محلی سازی لاراول روش مناسبی برای بازیابی استرینگ‌ها به زبان‌های مختلف را برای ما فراهم می‌کند. در واقع با استفاده از این قابلیت است که می‌توانیم با کمترین اتلاف وقت، از چند زبان در وب سایت خود پشتیبانی کنیم.