与相关实体的Symfony 2验证

时间:2012-06-22 09:30:49

标签: php symfony doctrine-orm

我有用户和订单实体。当用户创建订单时,我应检查用户现金是否大于订单成本。这该怎么做? 示例订单实体:

class Order
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var integer $user
     *
     * @ORM\ManyToOne(targetEntity="\App\UserBundle\Entity\User", inversedBy="orders")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    private $user;

    /**
     *
     * @ORM\Column(type="integer")
     * @Assert\Min(limit = "1", message = "You must enter positive number")
     */
    private $price;
}

2 个答案:

答案 0 :(得分:2)

您需要使用Callback

  

Callback断言的目的是让你完全创建   自定义验证规则并将任何验证错误分配给   对象上的特定字段。

答案 1 :(得分:1)

最简单的解决方案 - 编写自己的验证约束。作为FOS用户包中的示例唯一约束。