如何访问由findAll生成的数组中的元素

时间:2019-06-20 08:46:00

标签: php arrays doctrine findall

我必须测试当前用户是否存在于其他表中? 如何访问userOldList列表中的getId:以下代码产生错误:HTTP ERROR 500

$user = new User();
$repositoryUserOld= $this->getDoctrine()->getRepository(userOld::class);
$userOldList   = $repositoryUserOld->findAll();

$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
$em = $this->getDoctrine()->getManager();
if ($form->isSubmitted() && $form->isValid()) {

    foreach ($userOldlList as $userO ) {

        If ($user->getId() == $userO->getId() )
       {
           $form->get('id')->addError(new FormError('User exists'));
           return $this->render('AppBundle:MyApp:user.html.twig', array('form' => $form->createView()));
       }
   }

1 个答案:

答案 0 :(得分:0)

foreach中,您正在使用变量$userOldlList(请注意lOld之间的List),但是在顶部定义变量{{1} }。我认为这就是为什么会出现错误500。

关于如何更有效地执行此操作,可以替换整个$userOldList块(仅foreach中的条件是新代码;内部块是问题的副本,而没有任何更改) :

if

顺便说一句,最初,我只是将您的代码复制粘贴到PhpStorm中的一个新文件中,它立即突出显示了拼写错误的变量。拥有一个可以在键入时检查代码的工具,这是提高生产率的好方法。