Skip to content

Doctrine form mapper compatibility #1087

@rendix2

Description

@rendix2

Zdravíčko.

Používám freezy-bee/doctrine-form-mapper pro vytvoření doctrine entity z dat z formuláře. Příklad použití v presenteru

formSuccess(Form $form) : void
{
    $nameEntity = $this->em->getRepository(NameEntity::class)->find($id);
    $nameEntity = $this->doctrineFormMapper->save($nameEntity, $form);

    $this->em->persist($nameEntity);
    $this->em->flush();
}

Využívám tedy toho, že ve formuláři je event onSuccess, do které se posílá instance formuláře, ze které se pak sestaví doctrine entita. Bohužel pro tyto účely datagrid v případě velké editace posílá id a data a případě velkého přidávání posílá jen data. Tím zmíněnou knihovnu nedokážu použít a musím entitu sestavovat ručně. Příklad

$this->dataGrid->getInlineAdd()->onSubmit[] = function (ArrayHash $values) : void {
    $genusEntity = $this->em->getRepository(GenusEntity::class)->find($values->genus);
    $personEntity = $this->em->getRepository(PersonEntity::class)->find($values->person);

    $nameEntity = new NameEntity();
    $nameEntity->name = $values->nameName;
    $nameEntity->surname = $values->nameSurname;
    $nameEntity->genus = $genusEntity;
    $nameEntity->untilNow = $values->untilNow;
    $nameEntity->dateSince = $values->dateSince;
    $nameEntity->dateTo = $values->dateTo;
    $nameEntity->person = $personEntity;

    $this->em->persist($nameEntity);
    $this->em->flush();
};

Šlo by přidat klidně jinou událost (ať nevznikne BC break), do které se pošle Formulář/Container? Klidně s tim nějak pomůžu

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions