Я надеюсь, что вы сможете помочь, потому что я искал несколько дней.
У меня есть класс под названием «Атрибуты». В нем есть parentId
, который ссылается на другую запись Attributes
.
Я хочу расширить сущность "Атрибуты" как "Продукты" с помощью нескольких дополнительных полей. Все поля расширяются за исключением отношения parentId
.
Когда я добавляю родителя к Products
с помощью getter и setter, я получаю сообщение об ошибке:
`"Compile Error: Declaration of Products::setParent(?Attributes $parent): Products must be compatible with Attributes::setParent(?Attributes $parent)
: Attributes"`
Я пробовал автономную сущность Products
со всеми полями, но отношение к Attributes
вызывает проблемы с отношениями базы данных. И это расширение Attributes
.
Пробовал разные виды геттеров и сеттеров и оставлял их вне родительского.
Искал в Интернете ответ, но не видел наследства с внутренними отношениями.
Атрибуты класса:
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
*/
class Attributes
{
/**
* @ORM\Id()
* @ORM\Column(type="string", length=255)
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $val;
/**
* @ORM\Column(type="string", length=255)
*/
private $category;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Attributes")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
*/
private $parent;
}
Класс продукции:
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
*/
class Products extends Attributes
{
/**
* @ORM\Column(type="string", length=255)
*/
private $newField1;
/**
* @ORM\Column(type="string", length=255)
*/
private $newField2;
}
Я хотел бы знать, почему внутренние отношения "Родитель" не расширены, и я хотел бы знать, как получить parentId в расширенном классе.