Добавление связанных объектов лучше - PullRequest
0 голосов
/ 19 октября 2018

Как лучше реализовать добавление связанных Role сущностей?Было бы неплохо сохранить его внутри формы, если это возможно, или, может быть, если я добавлю метод к сущности User напрямую ... Есть ли встроенный механизм для этого или какой шаблон мне использовать?

public function add(Request $request)
{
    $data = $request->request->all();
    $user = new User();
    $form = $this->createForm(UserType::class, $user);
    $form->submit($data);
    if (false === $form->isValid()) {
        return $form;
    }
    $user = $form->getData();
    // Adding a Roles
    if (!empty($data['user_roles'])) {
        foreach ($data['user_roles'] as $value) {
            // Checking if a Role is present in DB
            $role = $this->getDoctrine()
                ->getRepository(Role::class)
                ->findOneBy(['role_name' => $value]);
            if ($role) {
                $user->setUserRole($role);
            }
        }
    }
    $this->em->persist($user);
    $this->em->flush();

    return new JsonResponse(
        [
            'status' => 'ok',
            'last_insert_id' => $user->getId(),
        ],
        JsonResponse::HTTP_CREATED
    );
}

1 Ответ

0 голосов
/ 19 октября 2018

Я всегда так работал, и у меня никогда не было проблем.На самом деле, я даже не использую формы Symfony, потому что они не такие гибкие.Лучший способ сделать это - тот, который вам удобнее.Просто будьте чисты и последовательны.Конечно, вы можете добавить метод к сущности User, но это всего лишь вопрос модульности, в этом нет особой необходимости.

...