表单字段(unique = true)和(nullable = true)

时间:2016-09-08 07:13:56

标签: forms symfony doctrine unique

我在一个名为' discountCode'的表单中有一个字段。与'codiceSconto'有关在User.php类中。

//Discount.php
/**
 * @ORM\Column(type= "integer", nullable = true) 
 * @ORM\OneToMany(targetEntity= "User", mappedBy = "codiceSconto")
 */
 private discountCode;


//User.php
/**
 * @ORM\Column(type="integer", length=5, nullable=true)
 * @ORM\ManyToOne(targetEntity="Discount", inversedBy="discountCode")
 * @ORM\JoinColumn(name="codicesconto_id", referencedColumnName="id")
 */

private $codiceSconto;

它代表用户可用于购买产品的折扣代码。 它不是必需的。 我已将其设置为(unique = true),因为每个折扣代表折扣百分比,因此它必须是唯一的。但是当我尝试验证表单时,我得到一个错误,说discountCode字段不能为NULL。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您错过了加入列中的nullable选项 此外,如果您与其他实体有关系,则不需要指定列类型。查看以下代码片段

/**
 * @ORM\OneToMany(targetEntity= "User", mappedBy = "discount")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
 */
 private discountCode;