Код: Выделить всё
Company.phpКод: Выделить всё
#[ORM\Entity(repositoryClass: CompanyRepository::class)]
class Company implements \Stringable
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\OneToOne(targetEntity: CompanyPrice::class, mappedBy: 'company', cascade: ['persist', 'remove'])]
private CompanyPrice $price;
Код: Выделить всё
CompanyPrice.phpКод: Выделить всё
#[ORM\Entity(repositoryClass: CompanyPriceRepository::class)]
class CompanyPrice
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
/**
* @var Collection
*/
#[ORM\OneToMany(mappedBy: 'price', targetEntity: CompanyZoneLimitPrice::class, cascade: ['persist', 'remove'])]
private Collection $carrierZoneLimitPrices;
Код: Выделить всё
CompanyType.phpКод: Выделить всё
class CompanyType extends AbstractType
{
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
#[\Override]
public function buildForm(FormBuilderInterface $builder, array $options): void
{
/** @var Company */
$company = $builder->getData();
$builder
->add('price', CompanyPriceType::class, [
'data' => $company->getPrice(),
])
Код: Выделить всё
CompanyPriceType.phpКод: Выделить всё
class CompanyPriceType extends AbstractType
{
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
#[\Override]
public function buildForm(FormBuilderInterface $builder, array $options): void
{
/** @var CompanyPrice */
$companyPrice = $builder->getData();
$builder
->add('carrierZoneLimitPrices', CollectionType::class, [
'entry_type' => CompanyZoneLimitPriceType::class,
'allow_add' => true,
'allow_delete' => true,
])
Но когда При попытке рендеринга получаю:
Не могу прочитать свойство "carrierZoneLimitPrices" в классе "App\Entity\Company\CompanyPrice".
Обычно я могу легко получить данные: $company->getPrice()->getZoneLimitPrices();
Я не хочу использовать 'mapped' => false
Чего мне здесь не хватает?
Подробнее здесь: https://stackoverflow.com/questions/786 ... e-property