Как проверить данные в пользовательском контроллере

Ток:

<script>
$("#startdate_datepicker").datepicker({ numberOfMonths: [2, 3] });
$("#enddate_datepicker" ).datepicker({ numberOfMonths: [2, 3] });
</script>

Изменить на:

<script>
$("#startdate_datepicker").datepicker({ numberOfMonths: [1, 2] });
$("#enddate_datepicker" ).datepicker({ numberOfMonths: [1, 2] });
</script>

Здесь, в numberOfMonths: [1, 2], 1 - это число и 2 количество месяцев.

Чтобы изменить цвет на оранжевый, используйте ниже CSS:

.ui-widget-header {
  border: 1px solid #FFA500;
  background : #FFA500;
}

.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
    border: 1px solid #FFA500;
  background : #FFA500;
}
1
задан user3532022 19 January 2019 в 10:03
поделиться

1 ответ

Наиболее распространенные подходы - это использование формы, которая, помимо прочего, обеспечивает валидацию, или просто валидатор в качестве отдельного компонента. В вашем случае вы - так как используете ApiPlatform - последний будет лучшим выбором, так как вам не нужно возвращать форму пользователю, а вместо этого возвращать ответ об ошибке.

Сначала вам нужно добавить Validator в ваш контроллер:

use ApiPlatform\Core\Bridge\Symfony\Validator\Exception\ValidationException;
use Symfony\Component\Validator\Validator\ValidatorInterface;

class CreateUser
{
    private $validator;

    public function __construct(ValidatorInterface $validator)
    {
        $this->validator = $validator;
    }

    public function __invoke(UserRegistration $data): UserRegistration
    {
        $errors = $this->validator->validate($data);
        if (count($errors) > 0) {
            throw new ValidationException($errors);
        }

        return $data;
    } 
}

Вы также можете проверить, как ApiPlatform делает это, посмотрев ValidateListener . Он предоставляет некоторые дополнительные функции, например, для групп проверки, которые вам пока не нужны, но могут быть интересны позже. Затем ApiPlatform будет использовать свой ValidationExceptionListener , чтобы реагировать на создаваемое вами исключение и отображать его соответствующим образом.

0
ответ дан dbrumann 19 January 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: