2

ユーザーと注文のエンティティがあります。ユーザーが注文を作成するとき、ユーザーの現金が注文のコストよりも大きいことを確認する必要があります。これを行う方法?注文エンティティの例:

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;
}
4

2 に答える 2

2

コールバックを使用する必要があります。

コールバックアサーションの目的は、完全にカスタムの検証ルールを作成し、検証エラーをオブジェクトの特定のフィールドに割り当てることです。

于 2012-06-22T11:30:24.530 に答える
1

最も簡単な解決策-独自の検証制約を記述します。例として、FOSユーザーバンドルの一意性制約。

于 2012-07-24T08:14:06.453 に答える