2016-10-07 4 views
1

Я хотел бы отменить операцию, если она сохраняется после тестирования. И я не знаю, как я пробовал задачу перенаправления напрасно.Отмените сохранение или обновление в prePersist

/** 
* @param mixed $object 
*/ 
public function prePersist($object) 
{ 
    if (is_null($object->getFile())) { 
    } 
} 

любая помощь?

+1

БОИТСЯ это не возможно оттуда, вам нужно использовать ограничение валидацию вместо http://symfony.com/doc/current/validation.html – yceruto

+0

Я думаю, что вам следует быть в состоянии бросить исключение, но ничего менее уверен ... – Hammerbot

+2

спасибо @Yonel! Я решил проблему, добавив: * @Assert \ NotNull() к свойству private $ file; –

ответ

0

Возможно, вам немного поздно. Так как я искал одно и то же, вот мое решение.

Кажется, не удалось выполнить какую-либо проверку в методе 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'); 
}