@HellWalk

Как создать поле под связь mappedBy=""?

Чтобы вопрос был более понятен, расскажу пару слов про то, как симфони позволяет в форме создания одной сущности, сразу отобразить форму и для заполнения другой, связанной сущности.

Допустим, у нас есть сущность клиент, с полем паспорт. При этом паспорт - это отдельная сущность со своими параметрами.

Связь на уровне сущности:
/**
     * @ORM\ManyToOne(targetEntity="App\Entity\Passport", inversedBy="client", cascade={"persist", "merge"})
     * @ORM\JoinColumn(nullable=false)
     */
    private $passport;


И на уровне формы создания клиента это делается легко:
public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            // ...
            ->add('passport', PassportType::class)


А теперь к сути вопроса - у клиента также есть имущество (его может быть много), и связано оно так:

Со стороны клиента:
/**
     * @ORM\OneToMany(targetEntity="App\Entity\Property", mappedBy="client")
     */
    private $property;


Со стороны имущества:
/**
     * @ORM\ManyToOne(targetEntity="App\Entity\Client", inversedBy="property", cascade={"persist", "merge"})
     * @ORM\JoinColumn(nullable=false)
     */
    private $client;


Автоматический генератор крудов свойство $property у клиента полностью игнорирует (отчасти это и понятно, ведь при связи mappedBy никакого поля в таблице client не создается), но наверняка в симфони продумали возможность, указать форме, что мы при создании клиента должны сразу создать несколько вариантов его имущества.

Кто-нибудь подскажет, как это сделать?
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы