Код: Выделить всё
// AppBundle\Admin\UserAdmin.php
$formMapper
->add('settings', AdminType::class, [
'label' => false
]);
// AppBundle\Admin\UserSettingsAdmin.php
$formMapper
->add('canBookUntil', ChoiceType::class, [
'label' => 'Gali rezervuotis iki',
'choices' => $choices,
'placeholder' => 'Darbo dienos pabaigos',
'empty_data' => null
]);
Я добавил несколько утверждений в поле canBookUntil, включая обратный вызов validate(), чтобы проверить, работает ли проверка из родительской формы:
Код: Выделить всё
// AppBundle\Entity\User.php
/**
* @var UserSettings
* @ORM\OneToOne(targetEntity="UserSettings", mappedBy="user", cascade={"persist"})
*/
public $settings;
// AppBundle\Entity\UserSettings.php
/**
* @var string|null
* @ORM\Column(type="string", length=15, nullable=true)
* @Assert\NotBlank(message="Pasirinkite laiką.")
*/
private $canBookUntil;
// ...
/**
* @Assert\Callback
* @param mixed $payload
*/
public function validate(ExecutionContextInterface $context, $payload): void
{
$context->buildViolation('Įveskite laiką.')->atPath('canBookUntil')->addViolation();
}
Я что-то упустил?
Я попробовал отправить форму UserSettingsAdmin, но появилась ошибка..
Подробнее здесь: https://stackoverflow.com/questions/790 ... -validated