Laravel представляє метод pathSegments() для класу Uri, що забезпечує елегантніший спосіб доступу та маніпулювання компонентами URI. Це нововведення спрощує роботу із сегментами шляху, пропонуючи зручний, колекційний інтерфейс.
Під час роботи з URL у веб-додатках часто виникає потреба виділяти конкретні сегменти. Раніше розробникам доводилося вручну розділяти рядок шляху та створювати колекцію. Тепер клас Uri в Laravel полегшує це за допомогою спеціального методу, який повертає компоненти шляху у вигляді готової до використання колекції:
use Illuminate\Support\Facades\Uri;
$uri = Uri::of('https://laravel.com/docs/11.x/validation');
// Отримати всі сегменти шляху як колекцію
$segments = $uri->pathSegments(); // ['docs', '11.x', 'validation']
// Доступ до специфічних сегментів за допомогою методів колекції
$firstSegment = $segments->first(); // 'docs'
$lastSegment = $segments->last(); // 'validation'
$secondSegment = $segments->get(1); // '11.x'
Поліпшення читабельності та зручності є суттєвими:
// До: ручне розділення рядка та створення колекції
$path = Uri::of('https://laravel.com/docs/11.x/validation')->path();
$segments = collect(explode('/', ltrim($path, '/')));
$firstSegment = $segments->first();
// Після: чистий і зручний підхід
$firstSegment = Uri::of('https://laravel.com/docs/11.x/validation')
->pathSegments()
->first();
Цей метод особливо корисний під час реалізації систем навігації або маршрутизації контенту:
class ProductController extends Controller
{
public function catalog(Request $request)
{
$uri = Uri::of($request->url());
$segments = $uri->pathSegments();
// Витягування категорії та підкатегорії з URL
$department = $segments->get(0); // 'shop'
$category = $segments->get(1); // 'electronics'
$subcategory = $segments->get(2); // 'smartphones'
// Створення навігаційного дерева на основі сегментів шляху
$navigation = $segments->map(function ($segment, $index) use ($segments) {
$url = '/'.implode('/', $segments->take($index + 1)->all());
return ['label' => ucfirst($segment), 'url' => $url];
});
return view('products.catalog', [
'department' => $department,
'category' => $category,
'subcategory' => $subcategory,
'navigation' => $navigation,
]);
}
}
Метод pathSegments() дозволяє створювати більш підтримуваний та виразний код при роботі з URI, підвищуючи читабельність і зменшуючи обсяг шаблонного коду в додатках Laravel
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті
Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку