Collection
ΠΠ°ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° 2025-07-25
Collection
ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ
(Ρ.Π΅. ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΌ Traversable ΠΈ ArrayAccess),
Π½ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡ email, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Email, Π° ΠΊΠ»ΡΡ
ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ inventory Ρ ΠΎΠ³ΡΠ°Π½ΡΠ΅Π½ΠΈΠ΅ΠΌ Range.
ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ, ΠΈ ΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ.
See also
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Unique.
| ??????????? ? | ???????? ??? ?????? | 
| ????? | Collection | 
| ????????? | CollectionValidator | 
ΠΠ°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Collection ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ
ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΠΎ-ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// src/Entity/Author.php
namespace App\Entity;
class Author
{
    protected array $profileData = [
        'personal_email' => '...',
        'short_bio' => '...',
    ];
    public function setProfileData($key, $value): void
    {
        $this->profileData[$key] = $value;
    }
}Π§ΡΠΎΠ±Ρ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ personal_email ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠ°ΡΡΠΈΠ²Π°
profileData ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΠΈ ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ
short_bio Π½Π΅ ΠΏΡΡΡΠΎΠΉ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 100 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π΄Π»ΠΈΠ½Ρ, Π²Π°ΠΌ
Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
    #[Assert\Collection(
        fields: [
            'personal_email' => new Assert\Email,
            'short_bio' => [
                new Assert\NotBlank,
                new Assert\Length(
                    max: 100,
                    maxMessage: 'Your short bio is too long!'
                )
            ]
        ],
        allowMissingFields: true,
    )]
    protected array $profileData = [
        'personal_email' => '...',
        'short_bio' => '...',
    ];
}ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΅ΡΡΡ Π½Π΅ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ, Π±ΡΠ΄ΡΡ Π²ΡΠ·Π²Π°Π½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΈΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ
"Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅" ΠΊΠ»ΡΡΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΡΠΈΠΈ
allowMissingFields ΠΈ allowExtraFields. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅, ΠΎΠΏΡΠΈΡ allowMissingFields
Π±ΡΠ»Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΊΠ°ΠΊ "true", ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Ρ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ $personalData
ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°Π» ΡΠ»Π΅ΠΌΠ΅Π½Ρ personal_email ΠΈΠ»ΠΈ short_bio, ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π±Ρ
Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Required ΠΈΠ»ΠΈ
Optional, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΈ ΠΎΠ½ΠΈ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π²ΡΠ΅Π³Π΄Π°
(Required), ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠΎΠ»Ρ (Optional).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»Π΅ personal_email ΠΌΠ°ΡΡΠΈΠ²Π°
profileData Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΡΡΡΡΠΌ ΠΈ ΡΠ²Π»ΡΠ»ΠΎΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ,
Π° ΠΏΠΎΠ»Π΅ alternate_email Π±ΡΠ»ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, Π½ΠΎ ΡΠ²Π»ΡΠ»ΠΎΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ
ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ Π΅Π³ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
    #[Assert\Collection(
        fields: [
            'personal_email' => new Assert\Required([
                new Assert\NotBlank,
                new Assert\Email,
            ]),
            'alternate_email' => new Assert\Optional(
                new Assert\Email
            ),
        ],
    )]
    protected array $profileData = ['personal_email' => 'email@example.com'];
}ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ allowMissingFields Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΊΠ°ΠΊ "true", Π²Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅
ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ alternate_email ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° profileData, ΡΠ°ΠΊ
ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Optional. ΠΠ΄Π½Π°ΠΊΠΎΠ΅, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»Π΅ personal_email Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅,
ΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ NotBlank Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΎ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΎΠ±ΡΡΠ½ΡΡΠΎ Π²
Required) ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ Π³ΡΡΠΏΠΏΡ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
 ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ
, ΠΎΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ
Π² ΡΠ°ΠΌΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Collection, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±ΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ
 Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π³ΡΡΠΏΠΏ. ΠΠΎΠ·ΡΠΌΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
1 2 3 4 5 6 7 8
use Symfony\Component\Validator\Constraints as Assert;
$constraint = new Assert\Collection(
    fields: [
        'name' => new Assert\NotBlank(['groups' => 'basic']),
        'email' => new Assert\NotBlank(['groups' => 'contact']),
    ],
);ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
1 2 3 4 5 6 7 8 9 10 11 12 13
$constraint = new Assert\Collection(
    fields: [
        'name' => new Assert\Required(
            constraints: new Assert\NotBlank(groups: ['basic']),
            groups: ['basic', 'strict'],
        ),
        'email' => new Assert\Required(
            constraints: new Assert\NotBlank(groups: ['contact']),
            groups: ['basic', 'strict'],
        ),
    ],
    groups: ['basic', 'strict'],
);ΠΠΏΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ allowMissingFields ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ Π²ΠΎ Π²ΡΠ΅Ρ
 Π³ΡΡΠΏΠΏΠ°Ρ
. ΠΠΎΡΡΠΎΠΌΡ,
ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²Π°Π»ΠΈΠ΄ΠΈΡΡΠ΅ΡΠ΅ Π² Π³ΡΡΠΏΠΏΠ΅ contact, $name ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ, Π½ΠΎ ΠΊΠ»ΡΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ
Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅, ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅
Optional Π²ΠΌΠ΅ΡΡΠΎ Required.
ΠΠΏΡΠΈΠΈ
allowExtraFields
ΡΠΈΠΏ: boolean ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: false
ΠΡΠ»ΠΈ ΡΡΠ° ΠΎΠΏΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΊΠ°ΠΊ false, Π° ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Π°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π½Π΅ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΡ
 Π² ΠΎΠΏΡΠΈΡ fields, Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π°
ΠΎΡΠΈΠ±ΠΊΠ° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΊΠ°ΠΊ true, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ.
allowMissingFields
ΡΠΈΠΏ: boolean ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: false
ΠΡΠ»ΠΈ ΡΡΠ° ΠΎΠΏΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΊΠ°ΠΊ false, ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ· ΠΎΠΏΡΠΈΠΈ
fields ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π² ΠΎΡΠ²Π½ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°
Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΊΠ°, ΠΊΠ°ΠΊ true, ΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
 ΠΏΠΎΠ»Π΅ΠΉ
ΠΎΠΏΡΠΈΠΈ fields Π² ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
extraFieldsMessage
ΡΠΈΠΏ: string ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: ΠΡΠΎ ΠΏΠΎΠ»Π΅ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅, Π΅ΡΠ»ΠΈ allowExtraFields - "false", ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ:
| ???????? | ???????? | 
|---|---|
| {{ field }} | ???? ????????????? ??????????????? ???? | 
fields
ΡΠΈΠΏ: array [ΠΎΠΏΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ]
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π° ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΌ Π²ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΈ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡ(Ρ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠ°ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° 2023-09-24
groups
ΡΠΈΠΏ: array | string ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: null
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π³ΡΡΠΏΠΏΡ ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π³ΡΡΠΏΠΏΠ°Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ.
missingFieldsMessage
ΡΠΈΠΏ: string ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: ΠΡΠΎ ΠΏΠΎΠ»Π΅ ΠΏΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅, Π΅ΡΠ»ΠΈ allowMissingFields - "false", ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ:
| ???????? | ???????? | 
|---|---|
| {{ field }} | ???? ?????????????? ????, ????????????? ? fields | 
ΠΠ°ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° 2025-07-27
payload
ΡΠΈΠΏ: mixed ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: null
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π°, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ Π΄ΠΎΠΌΠ΅Π½Ρ. Π‘ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΠ°Π»ΠΈΠ΄Π°ΡΠΎΡ, Π½ΠΎ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΈΡΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠ½Ρ-ΡΠ½Π΄Π΅ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ.