تابع tap در laravel collection

39
تابع tap در laravel collection

در نسخه 5.4.10 لاراول، تابعی معرفی شد یه نام tap که به شما این قابلیت را میدهد
که به هر نقطه ای در collection ها دسترسی داشته باشید و هرکاری که خواستید با نتایج آنها انجام دهید،
بدون اینکه collection اصلی را تغییر دهید.

به مثال زیر دقت کنید :

$items = [
    ['name' => 'David Charleston', 'member' => 1, 'active' => 1],
    ['name' => 'Blain Charleston', 'member' => 0, 'active' => 0],
    ['name' => 'Megan Tarash', 'member' => 1, 'active' => 1],
    ['name' => 'Jonathan Phaedrus', 'member' => 1, 'active' => 1],
    ['name' => 'Paul Jackson', 'member' => 0, 'active' => 1]
];

حالا ما این آرایه را به collection تبدیل میکنیم و دیتا ها را فیلتر میکنیم و از تابع tap روی آنها استفاده میکنیم
و نتیجه را به دو قسمت تقسیم میکنیم:

return collect($items)
    ->where('active', 1)
    ->tap(function($collection){
        return var_dump($collection->pluck('name'));
    })
    ->where('member', 1)
    ->tap(function($collection){
        return var_dump($collection->pluck('name'));
    });

خروجی اولین tap به صورت زیر است:

David Charleston, Megan Tarash, Jonathan Phaedrus, Paul Jackson

و خروجی دومین tap به صورت زیر:

David Charleston, Megan Tarash, Jonathan Phaedrus

میبینید که شما میتوانید tap های مختلفی از collection خود داشته باشید که این به شما خیلی کمک خواهد کرد.


نظرات (2)
مصطفی بیت
1398/04/17
سلام .
با تشکر از آموزشت
خوب بود . فقط اگر یکم بیشتر توضیح یا مثال داشته باشه آموزش هات بهتر میشه

با تشکر
حمید تیموری
1398/04/18
خواهش میکنم، بله مثال بیشتر بهتره، ولی متاسفانه به دلیل مشغله زیاد، همین موارد هم به سختی مینویسم
برای ثبت نظر ابتدا وارد سایت شوید