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
Пожалуйста, сообщите. Это оказывается главной головной болью.