У меня есть объект Dns
, у которого есть поле content
с ограничением NotBlank
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=true)
* @Assert\Regex("/^(([[:alnum:]-_]+(\.[[:alnum:]-_]+)*)|(\*))$/u")
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="content", type="string", length=64000, nullable=true)
* @Assert\NotBlank
* @Assert\Length(max="64000")
*/
private $content;
Я выполнил рабочее действие PATCH
с FosRestBundle.
/**
* @ParamConverter("updatedRecord", converter="fos_rest.request_body")
*/
public function patchAction(PowerDNSDomain $domain, PowerDNSRecord $record, PowerDNSRecord $updatedRecord, ConstraintViolationListInterface $validationErrors)
{
if ($validationErrors->count() > 0) {
return $this->handleBodyValidationErrorsView($validationErrors);
}
$record->setName($updatedRecord->getName())
->setContent($updatedRecord->getContent())
->setTtl($updatedRecord->getTtl())
->setPrio($updatedRecord->getPrio());
$this->get('manager.dns')->saveRecord($record);
return $this->view($record);
}
Когда я пытаюсь обновить запись Dns
без изменения поля content
, я получаю следующую ошибку из-за моего ограничения NotBlank
.
{ "error": "validation_failed", "error_description": "Проверка данных не удалась. Проверьте ошибки ниже.", "validation_errors": { "content": [ "Это значение не может быть нулевым." ] } }
То же самое делается с ограничением NotNull
.
Я пытаюсь ИСПРАВИТЬ запись Dns
, не меняя поле content
.
Возможно ли сохранить мое ограничение внутри объекта или я должен использовать другой способ?