Возможно, вам немного поздно. Так как я искал одно и то же, вот мое решение.
Кажется, не удалось выполнить какую-либо проверку в методе prePersist от Sonatas.
Для простой проверки NotNull, как вы это делаете, я бы добавил простое ограничение проверки для объекта или если поле не отображается на сам элемент формы.
Если вы хотите выполнить дополнительную проверку во время процесса сохранения сонатов, переопределите метод validate
. Этот вызов вызывается до методов prePersis
/preUpdate
и позволяет добавлять сообщения проверки.
use Sonata\CoreBundle\Validator\ErrorElement;
public function validate(ErrorElement $errorElement, $object)
{
$errorElement->with('file')->addViolation('Hey, this is a validation message');
}
БОИТСЯ это не возможно оттуда, вам нужно использовать ограничение валидацию вместо http://symfony.com/doc/current/validation.html – yceruto
Я думаю, что вам следует быть в состоянии бросить исключение, но ничего менее уверен ... – Hammerbot
спасибо @Yonel! Я решил проблему, добавив: * @Assert \ NotNull() к свойству private $ file; –