有两个实体:产品和产品详情:
class ProductDetail {
#[ORM\ManyToOne(targetEntity: Product::class, inversedBy: 'productDetail')]
#[ORM\JoinColumn(nullable: false)]
private $productItem;
#[ORM\Column(type: 'date', nullable: true)]
#[Assert\GreaterThan('today')]
#[Assert\Expression(
expression: 'this.getProductItem()->getStatus() in ['not done'] or value',
message: 'The planification date cannot be null for this status!',
)]
private $finishedDate;
class Product {
#[ORM\Column(type: 'string', length: 255)]
private $status;
基本上,我想为finishedDate
创建一个约束,当状态为'not done'时,不允许为空。但它并不是什么都不做,我很好奇我是否遗漏了什么。即使我把value
放在那里,日期为空,消息也不会被触发。
1条答案
按热度按时间nimxete21#
显示此链接:https://symfony.com/doc/current/components/expression_language/syntax.html。
你能不能试试:
您可以在自己的案例中使用自定义约束,它更灵活:https://symfony.com/doc/current/validation/custom_constraint.html