Оптимізація маршрутів за допомогою бульбашкової архітектури ресурсів Laravel

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Використання поверхневої маршрутизації в Laravel дозволяє спростити URL без втрати логічних зв'язків між батьківськими та дочірніми ресурсами. Як це нововведення може полегшити вашу роботу та оптимізувати структуру маршрутів? Читайте далі, щоб дізнатися більше про переваги, які воно пропонує
Шаблон ресурсного маршруту в Laravel спрощує URL, усуваючи зайву складність, та підтримує логічні зв’язки між батьківськими та дочірніми ресурсами. Цей архітектурний підхід оптимізує API-ендпоінти, позбавляючи від зайвих батьківських ідентифікаторів, які не додають цінності. Традиційні структури вкладених ресурсів формують громіздкі URL, які можуть бути незручними: ```php use App\Http\Controllers\OrderItemController; Route::resource('orders.items', OrderItemController::class); ``` Стандартне вкладення створює маршрути, які вимагають вказувати як батьківський, так і дочірній ідентифікатор на всіх етапах, навіть якщо дочірній ресурс можна ідентифікувати самостійно. Шаблон поверхневого маршруту спрощує цю схему, зберігаючи контекст батька лише там, де це необхідно: ```php use App\Http\Controllers\OrderItemController; Route::resource('orders.items', OrderItemController::class)->shallow(); ``` Це генерує оптимізовані маршрути, де операції з окремими ресурсами проходять без зайвих посилань на батьківський ресурс, при цьому зберігаючи відношення батька для колекційних дій. Приклад системи управління запасами продемонструє практичні переваги поверхневого маршруту в різних контекстах: ```php Route::resource('warehouses.products', ProductController::class)->shallow(); class ProductController extends Controller { public function index($warehouseId) { $warehouse = Warehouse::findOrFail($warehouseId); return ProductResource::collection($warehouse->products); } public function store(Request $request, $warehouseId) { $warehouse = Warehouse::findOrFail($warehouseId); $product = $warehouse->products()->create($request->validated()); return new ProductResource($product); } public function update(Request $request, $id) { $product = Product::findOrFail($id); $product->update($request->validated()); return new ProductResource($product->fresh()); } public function destroy($id) { $product = Product::findOrFail($id); $product->delete(); return response()->noContent(); } } ``` Підхід поверхневого маршруту дозволяє очищати методи контролера, зберігаючи цілісність даних. Операції з окремими продуктами працюють безпосередньо з їх ідентифікаторами, що знижує складність URL і покращує зручність API без втрати логічної структури відносин батька та дитини.

Популярні

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку