symfony更新用户而不更改密码

时间:2014-08-12 07:55:06

标签: symfony sql-update

我试图在不更改密码的情况下更新symfony中的用户。我认为这是一个正常的程序,之前已经设置了数千次。在这里,它不会起作用。

导致错误:

An exception occurred while executing 'UPDATE sys_user SET password = ?, firstname = ?, locations = ?, locale = ?, timezone = ? WHERE id = ?' with params

我正在使用ValidationGroups,并且只设置fristname,如下所示。

$userData = $this->get('security.context')->getToken()->getUser();

//..............

$validator = $this->get('validator');
        $this->error = $validator->validate($form, array('other'));
    }else{
        $this->error =false;
    }
     if ($request->getMethod() == 'POST' && count($this->error) == 0) { 

     $form->bind($request);

    $userData->setFirstname($form->get('firstname')->getData());
    $em->persist($userData); 
    $em->flush();

无论如何,它导致上面的错误。我想知道为什么它忽略了我的环境。我只是想更新用户的名字,我不知道为什么尝试更新所有的值。

编辑:完整错误消息(前端)

An exception occurred while executing 'UPDATE sys_user SET password = ?, firstname = ?, locations = ?, locale = ?, timezone = ? WHERE id = ?' with params [null, "testFirstname", "O:43:\"Doctrine\\Common\\Collections\\ArrayCollection\":1:{s:54:\"\u0000Doctrine\\Common\\Collections\\ArrayCollection\u0000_elements\";a:0:{}}", {}, "Africa\/Abidjan", 56]:

捕获致命错误:类别Pr \ UserBundle \ Entity \ Language的对象无法转换为/var/www/symfony/webprojekt/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php第1312行中的字符串

1 个答案:

答案 0 :(得分:2)

__toString()类中添加Pr\UserBundle\Entity\Language函数,将其转换为正确的字符串,以便在数据库中插入:

public function __toString() 
{
  return (string) $this->getTitle();
}

或类似的东西