متد tap و pipe در لاراول

۲۷ بهمن ۱۳۹۵

متد tap در لاراول

در لاراول 5.4.10 متد جدیدی به نام tap اضافه شده است که می توانید روی 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]
];

حالا عملیات زیر را بر روی آن انجام دهید:

    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'));
    });

خروجی اول مقدار زیر را مشاهده خواهید کرد:

    David Charleston, Megan Tarash, Jonathan Phaedrus, Paul Jackson

و در خروجی دوم مقدار زیر را مشاهده خواهید کرد:

    David Charleston, Megan Tarash, Jonathan Phaedrus
متد pipe در لاراول

متد pipe بسیار شبیه متد tap می باشد با این تفاوت که شما به خروجی می توانید داده یا داده هایی را اضافه کنید به مثال زیر توجه کنید:

    return collect($items)
    ->where('active', 1)
    ->pipe(function ($collection) {
        return $collection->push(['name' => 'John Doe']);
    });
// David Charleston, Megan Tarash, Jonathan Phaedrus, Paul Jackson, John Doe

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

 نویسنده:حمید شاه محمدی
 تعداد مشاهده خبر:(570)
 هر روز از مقاله های جدید طراحی سایت در کانال تلگرام ما با خبر شوید

 میانگین امتیازات:
 
  تعداد رای دهندگان: {{ count }}
نظرات:

{{ x }}
{{ alert }}

نویسنده:{{ com.name }}
{{ com.body }}
{{ com.created_at }}