【问题标题】:Adding related entities better way添加相关实体的更好方法
【发布时间】:2018-10-19 08:24:37
【问题描述】:

如何更好地实现添加相关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
    );
}

【问题讨论】:

  • 这个add方法属于哪个类?请问一个更清楚的问题。
  • @Trix,我觉得你帮不了我……

标签: php symfony symfony-forms symfony4


【解决方案1】:

我一直都是这样工作的,从来没有遇到过问题。事实上,我什至不使用 symfony 的表单,因为它们不够灵活。最好的方法是让您感觉更舒服的方法。只要确保干净和一致。 当然你可以给 User 实体添加一个方法,不过只是模块化的问题,在这种情况下不是很有必要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2021-05-03
    相关资源
    最近更新 更多