وبلاگ

آموزش متد 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 است در نظر گرفته شده است. خروجی به شکل زیر خواهد بود.

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



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

تو دانشگاه IT خوندم و اکثر منابع کتاب‌های ترجمه شده بودند و صدالبته مبهم :( مثلا element رو "عنصر" ترجمه می‌کردن و من همیشه می‌رفتم تو شیمی و جدول مندلیف. تو باورژن سعی کردم تا حد ممکن مطالب رو با زبان ساده و قابل درک بنویسم. باشد که کسانی که تازه پا به عرصه برنامه‌نویسی گذاشتن، راغب‌تر بشن و با نظرات و فیدبک‌های شما راه هموارتر بشه:)

مطالب مرتبط

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

مقاله‌های زیادی درباره مقایسه فریمورک لاراول با سیموفنی یا مواردی از این قبیل در سطح اینترنت یافت می‌شود. با این حال در این مقاله قصد مقایسه فریمورک‌ها را نداریم. بلکه سعی در توضیح مزایای لاراول و امکانات فریمورک لاراول داریم. امکانات بی‌نظیری که باعث شده است برنامه‌نویسان زیادی به سمت برنامه‌نویسی لاراول تغییر مسیر دهند

متدهای firstOrNew و firstOrCreate و firstOr و updateOrCreate در لاراول

متدهای firstOrNew و firstOrCreate و firstOr و updateOrCreate در لاراول برای آپدیت و ساخت مدل‌ها استفاده می‌شوند.

بهترین پکیج‌های لاراول

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

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

خدمات توسعه لاراول، جامعه PHP را غافلگیر کرده است. به جرات می‌توان گفت لاراول یکی از بهترین‌ فریمورک‌های PHP است که کار برنامه‌نویسی و کدزدن را سرعت بخشیده است. حتی ارتقا و توسعه هم با لاراول راحت‌تر شده است. به طوریکه توسعه برنامه به جای خسته‌کننده بودن، تبدیل به کاری جذاب و خلاقانه شده است.

دیدگاه‌ها