---
title: "Умовне завантаження зв'язків"
url: https://laravelukraine.com/blog/umovne-zavantazennia-zviazkiv
author: "Олексій Бабінцев"
date: 2026-08-05
---

# Умовне завантаження зв'язків

Потрібні різні зв'язки в залежності від контексту?

Використовуйте `when()` для умовного eager loading.

**Типові кейси:**

* Admin vs звичайний користувач
* API vs web
* Різні рівні деталізації

Перевага: одна логіка запиту, різні варіанти відповіді.

```php
// За роллю
$posts = Post::query()
  ->when(auth()->user()->isAdmin(), function ($query) {
    $query->with(['author', 'drafts', 'revisions']);
  })
  ->when(!auth()->user()->isAdmin(), function ($query) {
    $query->with('author:id,name');
  })
  ->get();

// За параметрами запиту
$posts = Post::query()
  ->when(request()->has('include_author'),
    fn($q) => $q->with('author')
  )
  ->when(request()->has('include_comments'),
    fn($q) => $q->with('comments.user')
  )
  ->get();
```
