我目前正在使用sonata admin和Doctrine ORM进行synfomy 4.2项目。
我想在某些条件设置为 true 时中止查询执行,例如,如果我想插入一个新产品,但由于某种原因该产品缺少参数 price,那么我想中止该查询并设置一条消息,让用户知道该产品无法创建,因为它缺乏价格。
我已经完成了研究,但找不到与我的问题相关的任何内容,我知道此功能必须应用于实体上的 PrePersist 函数。
我一直在用这样的东西打破我的头。
/**
* @ORM\PrePersist
*/
public function prePersist(LifecycleEventArgs $args)
{
$em = $args->getEntityManager("App\Milenio\VersionsControlBundle\Entity\Plugins");
$em->getConnection();
$em->flush();
$em->clear();
}
但这当然什么也没做,我仍然会导致明显的 SQL 异常。
我知道有办法告诉奏鸣曲管理员需要输入,但在我的特殊情况下不会成功。