我有 2 个表"utilisateur"(用户(和"pilote"(骑手(具有一对一关系。 当用户注册时,我希望他输入邮件/密码和昵称,这是他的骑手姓名。邮件和密码进入"utilisateur",昵称进入"pilote"。邮件和昵称都必须是唯一的。
我现在有什么:
- 我做了我的实体,"utilisateur"有一个"pilote"属性来建立关系。 实用实体代码
- 我已经有一个有效的注册表格(用make:注册表格制作(。
我没有得到什么:
- 如何在我的注册表中添加昵称字段,以便创建一个"飞行员"实体,然后将其添加到控制器中的"utilisateur"实体中?
看起来您只需要创建实体的 2 个新对象并像这样链接它们:
class TestController extends AbstractController
{
/**
* @param Request $request
* @param EntityManagerInterface $em
* @return Response
*/
public function index(
Request $request,
EntityManagerInterface $em
)
{
// add searchForm
$form = $this->createForm(YourForm::class);
$form->handleRequest($request);
// Check Form
if ($form->isSubmitted() && $form->isValid()) {
$formData = $form->getData();
// @todo check for duplicates
// you would have to check if Utilisateur/Pilote already exists and only then add,
// if not you'll get duplicates
$utilisateur = new Utilisateur($formData['mail'], $formData['password']); // create Utilisateur
$utilisateur->setPilote(new Pilote($formData['nickname'])); // link Pilote
$em->persist($utilisateur);
$em->flush(); // commit your new User
// add success flash
$this->addFlash(sprintf("Utilisateur %s() created", $utilisateur->getMail));
}
return $this->render(
'yourTemplate.html.twig',
[
'form' => $form->createView(),
]
);
}
}
现在您应该在数据库上看到 2 个新条目