首页 > 解决方案 > 如何在 Symfony 4 中的数组中创建实体中的新条目?

问题描述

这是我的数组$data

array(7) {
  ["form[username]"]=>
  string(4) "test"
  ["form[email]"]=>
  string(11) "test@123.sw"
  ["form[is_active]"]=>
  string(1) "1"
  ["form[plainPassword][first]"]=>
  string(0) ""
  ["form[plainPassword][second]"]=>
  string(0) ""
  ["form[id]"]=>
  string(1) "9"
  ["form[_token]"]=>
  string(43) "A"
}

我将此数据存储到我现有的实体中User,如下所示:

$entity = $this->getDoctrine()->getRepository(User::class)->find($data['form[id]']);
$em = $this->getDoctrine()->getManager();
$entity->setUsername($data['form[username]']);
$entity->setEmail($data['form[email]']);
$em->flush();

这运作良好!

但现在我实际上不想更新一个令人兴奋的用户,我想创建一个新用户。这是我的方法:

      $entity = new User();
      $entity = $data;
      $em = $this->getDoctrine()->getManager();
      $entity->setUsername($data['form[username]']);
      $entity->setEmail($data['form[email]']);
      $em->flush();

我得到错误:

调用数组上的成员函数 setUsername()

标签: mysqlsymfonydoctrineentityentitymanager

解决方案


删除$entity = $data;并保留实体。

$user = new User();
$em = $this->getDoctrine()->getManager();
$user->setUsername($data['form[username]']);
$user->setEmail($data['form[email]']);
$em->persist($user);
$em->flush();

推荐阅读