mysql - 如何在 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()
解决方案
删除$entity = $data;
并保留实体。
$user = new User();
$em = $this->getDoctrine()->getManager();
$user->setUsername($data['form[username]']);
$user->setEmail($data['form[email]']);
$em->persist($user);
$em->flush();
推荐阅读
- ruby-on-rails - 从 sqlite 迁移到 postgresql 数据库后的 Rails-Page 渲染问题
- javascript - 如何在 mousemove 事件后 1 分钟运行函数?
- java - 关于 ConcurrentHashMap 的 putVal 方法的源代码的混淆
- angular - Angular 6 + SASS 文件夹结构
- php - 从 dir 获取所有图像并使用 php 两两排序
- azure - 使用 Graph API 将 AD 组分配给 Azure AD 应用程序角色
- php - 为什么我得到数组 foreach 循环?
- vue.js - 我部署的 Vue 应用程序在本地工作,但不在远程服务器上
- php - PHP - 从保存的下拉列表中获取值
- mysql - 使用 order by 时条件选择查询不起作用