Светильник hautelook / AliceBundle: почему нулевой аргумент не ожидается / не действителен? - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь загрузить поддельные данные с помощью пакета hautelook / AliceBundle для проекта symfony4.Все работает отлично, кроме случаев, когда я пытаюсь использовать:

    frequency: 35%? <numberBetween(0.1,20)>

Тогда в 35% случаев параметр частоты будет нулевым, как и ожидалось, но затем, когда я загружаю приборы, я получаю:

In SimpleObjectGenerator.php line 114:

  An error occurred while generating the fixture "graphic_card_1" (App\Entity\GraphicCard): Invalid value given for the property "brand" of the object "graphic_card_1" (class: App\Ent  
  ity\GraphicCard).                                                                                                                                                                      


In HydrationExceptionFactory.php line 67:

  Invalid value given for the property "brand" of the object "graphic_card_1" (class: App\Entity\GraphicCard).  


In PropertyAccessor.php line 197:

  Expected argument of type "string", "NULL" given at property path "brand".  

Вот соответствующая часть моего файла приборов:

App\Entity\GraphicCard:
    graphic_card_{1..15}:
       brand: 60%? <randomElement(['AMD','Nvidia'])>
       model: <shuffle('hellosdfff787hx-')>
       ram: 40%? <numberBetween(0.1,128)>
       frequency: 35%? <numberBetween(0.1,20)>
       product: '@product_pc_<current()>'

Вот моя сущность GraphicCard:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\GraphicCardRepository")
 */
class GraphicCard
{
    /**
     * @var int
     *
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $brand;

    /**
     * @var string
     *
     * @ORM\Column(type="string", length=255)
     */
    private $model;

    /**
     * @var integer
     *
     * @ORM\Column(type="integer", nullable=true)
     */
    private $ram;

    /**
     * @var integer
     *
     * @ORM\Column(type="integer", nullable=true)
     */
    private $frequency;

    /**
     * @var Product
     *
     * @ORM\ManyToOne(targetEntity="App\Entity\Product", inversedBy="graphicCards")
     * @ORM\JoinColumn(nullable=false)
     */
    private $product;

    /**
     * @return int|null
     */
    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * @return string|null
     */
    public function getBrand(): ?string
    {
        return $this->brand;
    }

    /**
     * @param string $brand
     * @return $this
     */
    public function setBrand(string $brand): self
    {
        $this->brand = $brand;

        return $this;
    }

    /**
     * @return string|null
     */
    public function getModel(): ?string
    {
        return $this->model;
    }

    /**
     * @param string $model
     * @return $this
     */
    public function setModel(string $model): self
    {
        $this->model = $model;

        return $this;
    }

    /**
     * @return int|null
     */
    public function getRam(): ?int
    {
        return $this->ram;
    }

    /**
     * @param int|null $ram
     * @return $this
     */
    public function setRam(?int $ram): self
    {
        $this->ram = $ram;

        return $this;
    }

    /**
     * @return int|null
     */
    public function getFrequency(): ?int
    {
        return $this->frequency;
    }

    /**
     * @param int $frequency
     * @return $this
     */
    public function setFrequency(int $frequency): self
    {
        $this->frequency = $frequency;

        return $this;
    }

    /**
     * @return Product
     */
    public function getProduct(): Product
    {
        return $this->product;
    }

    /**
     * @param Product $product
     * @return GraphicCard
     */
    public function setProduct(Product $product): self
    {
        $this->product = $product;

        return $this;
    }

}

Что не так?Что я должен изменить?Спасибо.

...