Laravel 11.35 представив клас Uri
, розроблений на основі бібліотеки URI від PHP League. Цей клас спрощує маніпуляцію та роботу з URI у ваших додатках на Laravel, а також пропонує зручні функції для роботи з іменованими маршрутами.
Основна функція класу Uri — створення та маніпуляція URI-строками, включаючи запити, фрагменти та шляхи:
use Illuminate\Support\Uri;
$uri = Uri::of('https://laravel-news.com')
->withPath('links')
->withQuery(['page' => 2])
->withFragment('new');
(string) $url; // https://laravel-news.com/links?page=2#new
$uri->path(); // links
$uri->scheme(); // https
$uri->port(); // null
$uri->host(); // laravel-news.com
Зверніть увагу на різницю між отриманням значення URI та його декодуванням:
Перевірка та маніпуляція параметрами запиту URI стали ще простішими в Laravel завдяки класу UriQueryString
. Цей клас використовує трейти InteractsWithData
, який надає безліч корисних методів для обробки рядків запиту:
use Illuminate\Support\Uri;
$uri = Uri::of("https://laravel-news.com")
->withPath("links")
->withQuery(["page" => 2, 'name' => ''])
->withFragment("new");
$uri->query()->all(); // ["page" => "2"]
$uri->query()->hasAny("page", "limit"); // true
$uri->query()->has("name"); // true
$uri->query()->has('limit'); // false
$uri->query()->missing('limit'); // true
$uri->query()->filled('page'); // true
$uri->query()->filled("name"); // false
$uri->query()->isNotFilled("name"); // true
$uri->query()->isNotFilled("page"); // false
$uri->query()->string("page", "1"); // Stringable{ value: 2 }
$uri->query()->integer("limit", 10); // 10
Досліджуйте всі корисні методи, які InteractsWithData надає для інстанцій UriQueryString
, щоб впевнено працювати з даними запитів.
Клас Uri
може також створювати URI з іменованого маршруту вашого додатку, відносного URL або поточного Request
інстансу:
// Використання іменованого маршруту
(string) Uri::route("dashboard"); // http://laravel.test/dashboard
// Використання кореневого URL
(string) Uri::to("/dashboard"); // http://laravel.test/dashboard
// З поточного запиту
function (Request $request) {
(string) $request->uri(); // http://laravel.test/dashboard
}
З версії Laravel 11.36 клас Uri
автоматично створює псевдонім у додатках Laravel, що означає, що ви можете використовувати його без імпорту Illuminate\Support\Uri
.
Сподіваємося, вам сподобається використовувати Uri
у ваших додатках на Laravel! Клас Uri
був випущений у Laravel 11.35 у #53731. Також ознайомтеся з InteractsWithData, що надає безліч корисних методів для роботи з класом Uri
, класом Fluent та класом HTTP запитів Laravel (завдяки InteractsWithInput
).