این وب سایت با تمامی محتویات و دامین به فروش می رسد. لطفا جهت خریداری از طریق بخش ارتباط با ما در تماس باشید

جستجو ...


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

ثبت نام کنید

در این مقاله آموزشی ویژگی جدیدی به نام Tap که از لاراول 5.4 به Collection اضافه شد را به شما یاد خواهیم داد، با لیداوب همراه باشید.


در لاراول 5.4 ویژگی جدیدی به نام Tap به Collection  اضافه شد، این ویژگی به شما این اجازه را می دهد که روی یک مجموعه (Collection) خاص در یک نقطه خاص عملیات انجام دهید و خروجی آن را به دست آورید، بدون آنکه روی مجموعه اصلی تاثیری بگذارد.

بیشتر بخوانید:

Laravel Collections و استفاده از متد "when "

برای فهم بیشتر این ویژگی به مثال زیر توجه کنید، فرض کنید آرایه زیر وجود دارد :

$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, Paul Jackson

Tap در مقابل با Pipe

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

Tap به ما این اجازه را می دهد که روی داده ها هر عملیاتی انجام دهیم و از آن خروجی بگیریم، که این تغییرات روی داده اصلی مجموعه تاثیر نمی گذارد، اما وقتی از Pipe استفاده میکنیم همه فیلترها، تغییرات و ...  روی مجموعه اصلی انجام می شود .

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

بیشتر بخوانید:

آموزش پایه لاراول 5.5

با مقالات تخصصی کتابخانه انلاین لیداوب همراه باشید و روز به روز بر دانش خود در زمینه طراحی سایت بیفزایید.


 مطالب مرتبط  

در قسمت زیر مطالبی وجود دارند که با مقاله فعلی مرتبط هستند

متاسفانه فقط اعضای سایت قادر به ثبت دیدگاه هستند

برترین های