---
title: "pipe() - кастомна логіка у ланцюжку"
url: https://laravelukraine.com/blog/pipe-kastomna-logika-u-lanciuzku
date: 2026-08-28
---

# pipe() - кастомна логіка у ланцюжку

Потрібно застосувати складну логіку до всієї колекції?

`pipe()` передає в callback усю колекцію і повертає те, що callback повернув.

**Переваги:**

* Гнучка логіка
* Розбиття складних ланцюжків
* Умовні трансформації
* Дебаг

**Різниця з map():**

* map() - елемент за елементом
* pipe() - вся колекція одразу

Порада: використовувати іменовані функції для читабельності.

```php
$result = $users
  ->where('active', true)
  ->pipe(fn($c) => $c->sortBy('last_login')->take(10))
  ->values();

// Умовне сортування
$posts = Post::all()->pipe(function ($posts) use ($request) {
  return $request->sort === 'popular'
    ? $posts->sortByDesc('views')
    : $posts->sortByDesc('created_at');
});

// Дебаг
$result = $users
  ->where('active', true)
  ->pipe(fn($c) => tap($c, fn($c) => logger($c->count())))
  ->where('role', 'admin');
```
