проверка формы сущности symfony3 не работает

#forms #validation #symfony

#формы #проверка #symfony

Вопрос:

даже при копировании / вставке этих ограничений ничего не происходит, я также отключил проверки html, это код: twig:

 {{form_start(form, {'action':'', 'method':'POST'})}}
{{ form(form, {'attr': {'novalidate': 'novalidate'}}) }}
{{form_end(form)}}
  

здесь класс:

 class Curso {

/**
 * @var int
 *
 * @ORMColumn(name="id", type="integer")
 * @ORMId
 * @ORMGeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 * @AssertMaxLength(15)
 * @ORMColumn(name="titulo", type="string", length=255)
 */
private $titulo;

/**
 * @var string
 * @AssertNotBlank()
 * @AssertLength(
 *      min = 2,
 *      max = 50,
 *      minMessage = "Your first name must be at least {{ limit }} characters long",
 *      maxMessage = "Your first name cannot be longer than {{ limit }} characters"
 * )
 * @AssertType("string")
 * @ORMColumn(name="descripcion", type="string", length=255)
 */
private $descripcion;

/**
 * @var float
 * @AssertNotBlank()
 * @ORMColumn(name="precio", type="float")
 */
private $precio;

/**
 * Get id
 * @AssertNotBlank()
 * @return int
 */
public function getId() {
    return $this->id;
}

/**
 * Set titulo
 *
 * @param string $titulo
 *
 * @return Curso
 */
public function setTitulo($titulo) {
    $this->titulo = $titulo;

    return $this;
}

/**
 * Get titulo
 *
 * @return string
 */
public function getTitulo() {
    return $this->titulo;
}

/**
 * Set descripcion
 *
 * @param string $descripcion
 *
 * @return Curso
 */
public function setDescripcion($descripcion) {
    $this->descripcion = $descripcion;

    return $this;
}

/**
 * Get descripcion
 *
 * @return string
 */
public function getDescripcion() {
    return $this->descripcion;
}

/**
 * Set precio
 *
 * @param float $precio
 *
 * @return Curso
 */
public function setPrecio($precio) {
    $this->precio = $precio;

    return $this;
}

/**
 * Get precio
 *
 * @return float
 */
public function getPrecio() {
    return $this->precio;
}
}
  

можете ли вы сказать мне, что не так? извините за мой английский, я немного заржавел :)!!!

Комментарии:

1. Вы пытаетесь проверить свою форму или нет? Почему вы включаете {'attr': {'novalidate': 'novalidate'}} ?

2. @Chausser — разве он не мог бы разумно ожидать, что платформа будет проверять на стороне сервера, даже novalidate если опция передана? @Pablo — можете ли вы включить CursoType форму и, возможно, метод контроллера, который обрабатывает запросы / ответы для этого действия?

3. @CameronHurd Вы правы, параметр novalidate должен отключать только проверку HTML, но сервер все равно должен выполнять проверку.

Ответ №1:

Возможно, вы захотите проверить свои app/config.yml и убедиться, что у вас включены аннотации для проверки

 framework: 
    ...
    validation: { enable_annotations: true }