Laravel презентує метод Model::except(), який доповнює вже існуючий метод only(), пропонуючи інтуїтивно зрозумілий спосіб виключення конкретних атрибутів при роботі з Eloquent моделями
Під час роботи з Eloquent моделями часто виникає необхідність отримати певний набір атрибутів для відображення в інтерфейсі або відповідях API. Laravel пропонує метод only() для вибору конкретних атрибутів, але іноді логічніше працювати в зворотному напрямку — залишаючи всі атрибути, окрім певних. Новий метод except() робить цей підхід зрозумілим і простим:
$attributes = $user->except('password', 'remember_token');
// Повертає всі атрибути, окрім password та remember_token
Цей метод особливо корисний при підготовці моделей до відображення або серіалізації, виключаючи чутливу інформацію:
class AccountController extends Controller
{
public function profile(User $user)
{
// Повертає всі дані користувача, окрім чутливих полів
return view('accounts.profile', [
'userDetails' => $user->except('password', 'remember_token', 'two_factor_recovery_codes')
]);
}
public function settings(Request $request)
{
$user = $request->user();
// Повертає всі атрибути користувача, окрім внутрішніх або чутливих
return response()->json(
$user->except('id', 'password', 'remember_token', 'login_attempts', 'created_at', 'updated_at')
);
}
}
Метод безперешкодно працює з відносинами та складними структурами даних:
class OrderController extends Controller
{
public function receipt(Order $order)
{
// Завантажує замовлення з його відносинами
$order->load('items', 'customer', 'payments');
// Виключає внутрішні дані відстеження
$orderData = $order->except('internal_tracking_id', 'risk_score', 'admin_notes');
return view('orders.receipt', [
'order' => $orderData
]);
}
}
З додаванням методу except() поряд з існуючим only(), розробники Laravel отримали повний і гнучкий інструментарій для отримання точних атрибутів моделі в будь-якій ситуації, що робить код більш читабельним і зрозумілим
Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!