Url
Дата оновлення перекладу 2024-05-29
Url
Валідує, що значення є валідним рядком URL.
?????????????? ?? | ??????????? ??? ?????? |
???? | Url |
????????? | UrlValidator |
Базове застосування
1 2 3 4 5 6 7 8 9 10
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
#[Assert\Url]
protected string $bioUrl;
}
Це обмеження не перевіряє, чи реально існує хост заданого URL, так як інформація DNS запиів не надійна. Використайте PHP-функцію checkdnsrr, якщо ви все ще хочете це перевірити.
Дата оновлення перекладу 2022-12-20
Note
Як і в більшості інших обмежень, null
та порожні рядки вважаються валідними
значеннями. Це для того, щоб дозволити їм бути опціональними значеннями. Якщо
значення є обовʼязковим, розповсюдженим рішенням буде комбінація цього обмеження
з NotBlank.
Опції
Дата оновлення перекладу 2023-09-24
groups
тип: array
| string
за замовчуванням: null
Визначає групу або групи валідації обмеження. Прочитайте більше про групи валідації.
message
тип: string
за замовчуванням: Це значення не є валідним URL.
Це повідомлення відображається, якщо URL не є валідним.
Ви можете використати наступні параметри в цьому повідомленні:
???????? | ???? |
---|---|
{{ value }} |
??????? (?????????) ???????? |
{{ label }} |
??????????? ????? ???? ????? |
1 2 3 4 5 6 7 8 9 10 11 12
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
#[Assert\Url(
message: 'The url {{ value }} is not a valid url',
)]
protected string $bioUrl;
}
Дата оновлення перекладу 2022-12-20
normalizer
тип: PHP-викличне за замовчуванням: null
Ця опція дозволяє вам визначати PHP-викличне, застосоване до заданого значення до перевірки, чи є воно валідним.
Наприклад, ви можете захотіти передати рядок 'trim'
для застосування
PHP-функції trim, щоб ігнорувати початкові та замикаючі пробіли
під час валідації.
Дата оновлення перекладу 2024-05-29
payload
тип: mixed
за замовчуванням: null
Ця опція може бути використана, щоб додати довільні дані, специфічні для домену, до обмеження. Сконфігуроване корисне навантаження не використовується компонентом Validator, але його обробка повністю залежить від вас.
Наприклад, ви можете захотіти використати декілька рівнів помилок, щоб представити неуспішні обмеження по-різному у фронтенді, залежно від серйозності помилки.
protocols
тип: array
за замовчуванням: ['http', 'https']
Протоколи, які вважаються валідними для URL. Наприклад, якщо ви також вважаєте
валідними URL типи ftp://
, перевизначіть масив protocols
, вказавши http
,
https
, а також ftp
.
1 2 3 4 5 6 7 8 9 10 11 12
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
#[Assert\Url(
protocols: ['http', 'https', 'ftp'],
)]
protected string $bioUrl;
}
relativeProtocol
тип: boolean
за замовчуванням: false
Якщо true
, протокол вважається опціональним при валідації синтаксису заданого
URL. Це означає, що валідні не тільки http://
та https://
, але і відносні
URL, які не містять протоколу (наприклад, //example.com
).
1 2 3 4 5 6 7 8 9 10 11 12
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
#[Assert\Url(
relativeProtocol: true,
)]
protected string $bioUrl;
}
requireTld
тип: boolean
за замовчуванням: false
7.1
Опція requiredTld
була представлена в Symfony 7.1.
За замовчуванням, URL на кшталт https://aaa
або https://foobar
вважаються валідними,
оскільки вони є технічно коректними згідно зі специфікацією URL. Якщо ви встановите цю опцію
якtrue
, частина URL, що містить хост, повинна буде містити TLD (домен верхнього рівня): наприклад,
https://example.com
буде коректним, а https://example
- ні.
Note
Це обмеження не валідує, що задане значення TLD включено до до списку офіційних доменів верхнього рівня (оскільки цей список постійно розширюється постійно зростає, і за ним важко встежити).
tldMessage
тип: string
за замовчуванням: Цей URL не містить TLD.
7.1
Опція tldMessage
була представлена в Symfony 7.1.
Це повідомлення відображається, якщо опція requireTld
має значення true
, а URL-адреса
не містить хоча б одного TLD.
У цьому повідомленні можна використовувати наступні параметри:
???????? | ???? |
---|---|
{{ value }} |
??????? (?????????) ???????? |
{{ label }} |
??????????? ????? ???? ????? |
1 2 3 4 5 6 7 8 9 10 11 12 13
// src/Entity/Website.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Website
{
#[Assert\Url(
requireTld: true,
tldMessage: 'Додайте принаймні один TLD до URL {{ value }}.',
)]
protected string $homepageUrl;
}