我是Symfony 4的新手,正在寻求帮助。我有一个名为“ Player”的实体,我想生成一个随机的确认号。
现在,我使用变量 $ confirmNbr ,并使用 $ participant-> setConfirmationNumber($ confirmNbr); 将$ confirm保存在数据库中。 / p>
我想要的是像这样在Entity Player.php中创建一个函数 generateRandomNumber():
public function generateConfirmationNumber() : self
{
$this->confirmationNumber = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',6)),0,5);
return $this;
}
这是我的Controller文件
/**
* @Route("/", name="homepage")
*/
public function new(Player $player, EntityManagerInterface $em, Request $request)
{
$participant = $this->playerrepo->findAll();
$form = $this->createForm(PlayerFormType::class);
$randomNbr = $player->generateConfirmationNumber();
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$participant = new Player;
$participant->setName($data['name']);
$participant->setFirstname($data['firstname']);
$participant->setEmail($data['email']);
$participant->setConfirmationNumber($confirmNbr);
$participant->setRegisterAt(new \DateTime);
$em->persist($player);
$em->flush();
$this->addFlash('success', 'Player added!');
return $this->redirectToRoute('homepage');
}
return $this->render('app/subscribe.html.twig', [
'playerForm' => $form->createView(),
'player'=>$player,
]);
}
这是我的错误消息:
无法猜测如何从请求中获取Doctrine实例 参数“玩家”的信息。
能帮我吗?
答案 0 :(得分:0)
您的方法期望Player
对象的实例-它应该来自哪里?教义正在尝试猜测并从URL中获取它,但事实并非如此。您的方法是创建新的播放器-为什么需要播放器实例?只需从方法签名中删除该参数,即可将其更改为:
public function new(EntityManagerInterface $em, Request $request)
答案 1 :(得分:0)
我找到了解决方案。我已经修改了set函数,并删除了添加的函数。一切正常!