Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама

Статті за тегом «Laravel»

Статті, новини, туторіали та переклади від учасників спільноти

No results.
Laravel Chores
Новини 19 серпня 2026

Laravel Chores: відновлювані операції з даними та автоматизація рутинних завдань

Новий пакет Laravel Chores від Amr Lotfy Saleh дозволяє виконувати масові операції з даними, які автоматично зберігають прогрес після кожної пачки записів. Це означає, що переривання процесу не змусить починати заново - робота продовжиться з того місця, де зупинилася.

5
Laravel Lock
Переклади 18 серпня 2026

Laravel Lock: пакет для розподілених блокувань моделей та маршрутів

Laravel Lock від Md Mahedi Zaman Zaber - це пакет для керування розподіленими блокуваннями у Laravel. Він пропонує зручний інтерфейс для блокування моделей та маршрутів, підтримку двох драйверів зберігання (кеш і база даних), middleware для захисту роутів та автоматичне звільнення ресурсів навіть при помилках.

22
Tips 17 серпня 2026

map() vs transform() - трансформація колекцій

Потрібно змінити кожен елемент колекції?

map() і transform() роблять це, але працюють по-різному.

Різниця:

  • map() повертає НОВУ колекцію, оригінал залишається без змін
  • transform() змінює оригінальну колекцію

Що коли використовувати:

  • map() - коли початкові дані потрібні пізніше
  • transform() - коли треба зекономити пам'ять на великих колекціях

Порада: map() дозволяє повністю змінювати структуру, transform() зберігає ключі.

// map() - створює нову колекцію
$users = User::all();
$names = $users->map(function ($user) {
  return strtoupper($user->name);
});

// transform() - змінює оригінал
$users = User::all();
$users->transform(function ($user) {
  $user->name = strtoupper($user->name);
  return $user;
});

// map() з короткими функціями
$prices = collect([100, 200, 300]);
$withTax = $prices->map(fn($p) => $p * 1.2);

// Повна зміна структури
$formatted = $users->map(fn($user) => [
  'id' => $user->id,
  'label' => "{$user->name} ({$user->email})"
]);

// mapWithKeys - власні ключі
$users->mapWithKeys(fn($user) =>
  [$user->email => $user->name]
);
Tips 14 серпня 2026

pluck() - витягуй значення професійно

Потрібен масив ID? Організовувати цикл і додавати значення вручну не потрібно.

pluck() дістає значення стовпця в простий масив. В один рядок.

Розширені можливості:

  • Pluck із ключем - створює асоціативний масив
  • Pluck у зв'язках - без N+1
  • Pluck на кілька рівнів - через dot notation

Коли варто використовувати:

  • Формування select-опцій
  • Отримання ID для whereIn()
  • Створення lookup-масивів

Порада: використовувати pluck() безпосередньо на query builder - ефективніше, ніж завантажувати моделі.

3
// Погано: цикл і ручне збирання
$ids = [];
foreach ($users as $user) {
  $ids[] = $user->id;
}

// Добре: один рядок
$ids = $users->pluck('id');
// [1, 2, 3, 4, 5]

// Із ключем
$userNames = $users->pluck('name', 'id');
// [1 => 'John', 2 => 'Jane', 3 => 'Bob']

// Безпосередньо з бази - ефективніше
$emails = User::pluck('email');
$emailsById = User::pluck('email', 'id');

// Dot notation
$posts = Post::with('author')->get();
$authorNames = $posts->pluck('author.name');

// Кілька рівнів
$comments = Comment::with('post.author')->get();
$authors = $comments->pluck('post.author.name');

// Для select
$countries = Country::pluck('name', 'code');
// ['US' => 'United States', 'GB' => 'United Kingdom']
Кеш результатів запитів: Eloquent під тегами
Посібники 13 серпня 2026
Як будувався laravelukraine.com

Кеш результатів запитів: Eloquent під тегами

Прибравши зайві запити, беремося за ті, що лишилися дорогими. Кеш результатів Eloquent-запитів через трейт Cacheable з автоматичною інвалідацією за тегами - найглибший із двох рівнів кешу, якими ми тримаємо origin під навалою AI-краулерів.

64
Tips 12 серпня 2026

withDefault() - ніяких null при зв'язках

Постійно перевіряєте, чи існує зв'язок, перед доступом до нього?

withDefault() повертає "порожню" модель замість null.

Переваги:

  • Менше if ($user->profile)
  • Чистіші Blade-шаблони
  • Можливість задати дефолтні значення
4
// User model
public function profile()
{
  return $this->hasOne(Profile::class)
    ->withDefault([
      'bio' => 'No bio provided',
      'avatar' => 'default.png',
      'website' => null,
    ]);
}

// Без перевірок на null
{{ $user->profile->bio }}
// Динамічні дефолти
public function profile()
{
  return $this->hasOne(Profile::class)
    ->withDefault(function ($profile, $user) {
      $profile->bio = "Member since {$user->created_at->year}";
    });
}

// BelongsTo з дефолтом
public function author()
{
  return $this->belongsTo(User::class, 'author_id')
    ->withDefault([
      'name' => 'Guest',
      'email' => 'noreply@example.com',
    ]);
}

// У Blade
{{ $post->author->name }} // Ніколи не null
Laravel Discount
Новини 12 серпня 2026

Laravel Discount: знижки, промокоди, ліміти використання та стекування

Пакет Laravel Discount від Milwad Khosravi надає повноцінну систему знижок для Laravel-додатків: відсоткові та фіксовані знижки, промокоди, часові вікна, ліміти використання, підтримку гостей, стекування знижок та інтеграцію з кошиком.

14

Матеріали за темою «Laravel»: усе, що ми писали про це українською. Нижче - суміжні теми, якщо шукаєте ширше.

Зараз опубліковано 150 матеріалів від 3 авторів. Останній матеріал - 12 вересня 2026.