【发布时间】: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