Я пытаюсь применить правило проверки к атрибуту дочерней сущности, унаследованной от другой сущности.
Родительская сущность:
/**
* Cargo
* @ORM\Entity(repositoryClass="App\Repository\Cargo\CargoRepository")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"cargo" = "Cargo", "maritime_container" = "MaritimeContainer", "pallet" = "Pallet",
* "swap_unit" = "SwapUnit", "unit_load" = "UnitLoad", "furniture" = "Furniture"})
*
* @UniqueEntity(fields={"trip"}, message="This trip has been associated!")
*/
class Cargo
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var float
*
* @Assert\NotNull()
* @Assert\Positive()
* @ORM\Column(name="gross_weight", type="float", nullable=false)
*/
public $grossWeight;
}
Дочерняя сущность:
/**
* MaritimeContainer
*
* @ORM\Entity(repositoryClass="App\Repository\Cargo\MaritimeContainerRepository")
*/
class MaritimeContainer extends Cargo
{
/**
* @var string
*
* @ORM\Column(name="feet_container", type="string", length=2)
*
* @Assert\NotBlank()
* @Assert\Choice(choices={"20", "40"}, strict=true)
* @Assert\Length(min=2, max=2)
*/
public $feetContainer;
}
Валидатор не обнаруживает нарушений в этом случае и должен сказать мне, что gross_weight
должно быть положительным значением. Даже если я не использую этот установщик, он должен сказать, что gross_weight
не может быть нулевым, и это не так:
$maritimeContainer = new MaritimeContainer();
$maritimeContainer->setGrossWeight(-5);
Любое предложение будет действительно оценено.