Symfony 如果另一列中的值为true,则不为NULL
我正在创建我的实体,我想创建一个包含两列的实体,这两列需要有一个特定的约束。如果定义了addressId,则extAddressId可以为null,并且必须为nullSymfony 如果另一列中的值为true,则不为NULL,symfony,doctrine,Symfony,Doctrine,我正在创建我的实体,我想创建一个包含两列的实体,这两列需要有一个特定的约束。如果定义了addressId,则extAddressId可以为null,并且必须为null /** * @ORM\Entity() * @ORM\Table(name="widgets") */ class Widget { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */
/**
* @ORM\Entity()
* @ORM\Table(name="widgets")
*/
class Widget
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $addressId;
/**
* @ORM\Column(type="integer")
*/
private $extAddressId;
}
我知道如何使用SQL,但不知道如何使用条令
CREATE TABLE widgets
(
id integer,
addressId integer,
extAddressId integer,
CONSTRAINT if_addressId_then_extAddressId_is_not_null
CHECK ( (NOT addressId) OR (extAddressId IS NOT NULL) )
);
根据,可以添加如下检查约束:
/**
* @ORM\Column(type="integer", options={"check":"[your check condition]"})
*/
private $addressId;
/**
* @ORM\Column(type="integer", options={"check":"[your check condition]"})
*/
private $extAddressId;
我还没有测试过自己