Ограничения аннотации Symfony 4 не работают с унаследованным атрибутом - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь применить правило проверки к атрибуту дочерней сущности, унаследованной от другой сущности.

Родительская сущность:

/**
 * 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);

Любое предложение будет действительно оценено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...