Laravel надає елегантні методи для управління відсутніми даними запиту через missing() та whenMissing(). Ці методи спрощують обробку необов'язкових полів і встановлення значень за замовчуванням, роблячи ваш код більш зрозумілим і зручним для підтримки.
// Перевірка на відсутність даних
if ($request->missing('name')) {
$name = 'Гість';
}
// Обробка відсутніх даних з колбеками
$request->whenMissing('email', function () {
// Обробка відсутньої електронної пошти
});
Розглянемо приклад системи оновлення налаштувань:
// app/Controllers/SettingsController.php
<?php
namespace App\Http\Controllers;
use App\Models\Settings;
use Illuminate\Http\Request;
class SettingsController extends Controller
{
public function update(Request $request, Settings $settings)
{
$updates = [];
// Обробка налаштувань теми
$request->whenMissing('theme',
function() use (&$updates) {
$updates['theme'] = [
'mode' => 'system',
'color' => 'blue'
];
},
function() use (&$updates, $request) {
$updates['theme'] = [
'mode' => $request->input('theme.mode', 'light'),
'color' => $request->input('theme.color', 'blue')
];
}
);
// Обробка налаштувань сповіщень
if ($request->missing('notifications')) {
$updates['notifications'] = [
'email' => true,
'push' => false,
'frequency' => 'daily'
];
} else {
$updates['notifications'] = $request->notifications;
}
$settings->update($updates);
return response()->json([
'message' => 'Налаштування успішно оновлено',
'settings' => $settings->fresh()
]);
}
}
Приклад використання:
// Вхідні дані з мінімальною інформацією
{
"notifications": {
"email": true,
"push": true
}
}
// Відповідь
{
"message": "Налаштування успішно оновлено",
"settings": {
"theme": {
"mode": "system",
"color": "blue"
},
"notifications": {
"email": true,
"push": true,
"frequency": "daily"
}
}
}
// Вхідні дані з повною інформацією
{
"theme": {
"mode": "dark",
"color": "purple"
},
"notifications": {
"email": false,
"push": true,
"frequency": "weekly"
}
}
Методи missing() та whenMissing() пропонують зручний спосіб обробки необов'язкових даних запиту, зберігаючи читабельність коду
Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше