Ошибка типа формы Symfony «Невозможно прочитать свойство»Php

Кемеровские программисты php общаются здесь
Anonymous
Ошибка типа формы Symfony «Невозможно прочитать свойство»

Сообщение Anonymous »

Код: Выделить всё

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

Вернуться в «Php»