Sonata\ProductBundle\Model\BaseProductProvider::validateFormBasketElement PHP Метод

validateFormBasketElement() публичный Метод

public validateFormBasketElement ( Sonata\CoreBundle\Validator\ErrorElement $errorElement, Sonata\Component\Basket\BasketElementInterface $basketElement, Sonata\Component\Basket\BasketInterface $basket )
$errorElement Sonata\CoreBundle\Validator\ErrorElement
$basketElement Sonata\Component\Basket\BasketElementInterface
$basket Sonata\Component\Basket\BasketInterface
    public function validateFormBasketElement(ErrorElement $errorElement, BasketElementInterface $basketElement, BasketInterface $basket)
    {
        // the item is flagged as deleted, no need to validate the item
        if ($basketElement->getDelete() || 0 === $basketElement->getQuantity()) {
            return;
        }
        // refresh the product from the database
        $product = $basketElement->getProduct();
        // check if the product is still in database
        if (!$product) {
            $errorElement->addViolation('product_not_available');
            return;
        }
        // check if the product is still enabled
        if (!$basketElement->getProduct()->getEnabled()) {
            $errorElement->addViolation('product_not_enabled');
            return;
        }
        // check if the quantity is numeric
        if (!is_numeric($basketElement->getQuantity())) {
            $errorElement->with('quantity')->addViolation('product_quantity_not_numeric')->end();
            return;
        }
        $errorElement->with('quantity')->assertRange(array('min' => 1, 'max' => $this->getStockAvailable($basketElement->getProduct()), 'minMessage' => 'basket_quantity_limit_min', 'maxMessage' => 'basket_quantity_limit_max'))->end();
    }