Symfony make: проблема наследования сущностей и отдельных таблиц - PullRequest
1 голос
/ 24 февраля 2020

Symfony версия: 4.4.x / Doctrine: 2.6.x

Я использую команду make:entity --regenerate в консоли Symfony для генерации методов получения / установки для моих классов. Я получаю конкретную проблему с классами, унаследованными от одной таблицы. Несмотря на то, что родительская таблица имеет все объявленные переменные и свойства, make:entity в конечном итоге создает частные переменные и методы в унаследованной таблице.

///Class InfoItem
/**
* @ORM\Entity
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="item_type", type="string", length=20)
* @ORM\DiscriminatorMap({"uom"="Uom"})
*/
abstract class InfoItem{
  /**
    * @ORM\Id
    * @ORM\Column(type="integer")
    * @ORM\GeneratedValue(strategy="AUTO")
    * @var integer 
    */    
    protected $id;   

   /**
     * @ORM\Column(type="string", length=20, nullable=true)
     * @var string
     */
    protected $code;


    public function getId()
    {
        return $this->id;
    }

    public function getCode(): ?string
    {
        return $this->code;
    }

    public function setCode(?string $code): self
    {
        $this->code = $code;

        return $this;
    }    
}

///Class Uom
/**
* @ORM\Entity
*/
class Uom extends InfoItem
{
}

Теперь, когда я запускаю php bin/console make:entity --regenerate, команда приводит к ненужному изменению класса Uom.

class Uom{

    private $id;
    private $code;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getCode(): ?string
    {
        return $this->code;
    }

    public function setCode(?string $code): self
    {
        $this->code = $code;

        return $this;
    }
}

И если вы снова запустите команду make:entity, это приведет к в ошибке:

Compile Error: Access level to App\Entity\Uom::$id must be protected (as in class App\Entity\InfoItem) or weaker

Пожалуйста, сообщите. Это оказывается главной головной болью.

1 Ответ

0 голосов
/ 24 февраля 2020

Этот вопрос все еще открыт в symfony github https://github.com/symfony/maker-bundle/issues/302

...